代码编织梦想

一、什么是SQL注入漏洞

SQL注入漏洞是一种常见的网络安全漏洞,指的是攻击者通过在输入参数中插入恶意的SQL语句,从而使得应用程序执行了未经授权的数据库操作。这种攻击手法通常出现在Web应用程序中。黑客可以通过修改应用程序中的SQL查询语句或者直接构建一个伪造的SQL查询指令来实现对数据库的非法访问,并获取敏感信息。将恶意的SQL脚本嵌入其中,从而篡改数据、窃取用户信息、甚至完全控制服务器。

二、SQL注入型

SQL注入漏洞有多种形式,以下是一些常见的SQL注入形式:

1、基于字符串拼接的注入:当应用程序将用户提供的输入直接拼接到SQL查询语句中时,攻击者可以通过在输入中插入SQL语句片段改变原始查询的意图。

select * from users where username = ' + userInput + ';
攻击者可以在userInput中输入' OR '1'='1' --来绕过用户名验证,获取所有用户的信息。

2、基于注释符的注入:攻击者使用SQL注释符(例如–)来终止正常的SQL查询,然后添加自己的恶意代码。

select * from users where username = 'admin' -- ' and password = '123456';
在这个例子中,' and password = '123456';部分被注释掉了,攻击者成功绕过密码验证。

3、基于布尔盲注的注入:攻击者利用应用程序对查询结果的响应来判断自己的注入是否成功。通过构建恶意的条件语句并观察应用返回的页面或响应时间等信息,来推测出数据库中的数据。

select * from users where id = 1 and substring((select password from users where username = 'admin'), 1, 1) = 'a';
攻击者可以通过逐个字母地检查密码字段的值,并观察页面响应来获取管理员的密码。

三、判断SQL有没有注入点

判断SQL注入点的方法很多,以下是一些常用的SQL注入点判断语句:尝试在输入参数中添加一个单引号 ’ ,观察是否会产生SQL语法错误。
例如,假设存在以下查询:

select * FROM users where username = '<input>';
尝试输入  ' OR 1=1; --,如果查询结果返回所有用户信息,那么可能存在SQL注入点。语法错误测试: 尝试在输入参数中添加一些SQL语法错误,观察是否会产生异常或错误消息。
尝试输入 1 OR 1=1; delete from users;,如果出现语法错误,或者用户表中的数据被删除,那么可能存在SQL注入点。
可以尝试输入 ' union select username, password from users; --,如果查询结果中包含用户表的用户名和密码,那么可能存在SQL注入点。

四、SQL基础要点

1.MYSQL5.0以上版本:
自带的数据库名information_schema,遇见的数据库基本都是5.0以上。
2. 各对应名:

information_schema:存储数据库下的数据库名及表名,列名信息的数据库
information_schema.schemata:记录数据库名信息的表
information_schema.tables:记录表名信息的表
information_schema.columns:记录列名信息表
schema_name:information_schema.schemata记录数据库名信息的列名值
table_schema:information_schema.tables记录数据库名的列名值
table_name:information_schema.tables记录表名的列名值
column_name:information_schema.columns记录列名的列名值

细节:查询的结果很多,需要全部显示加上group_concat(),在末尾加上limit 0,1显示第一条数据,limit 0,2 显示第二条数据。后面的数据代表显示多少行从第一个数字后面开始不包括第一个数字的范围。

五、SQL注入点会发生在哪些参数里面

1、用户名和密码:
当用户登录时,用户名和密码通常是作为输入参数传递给数据库查询。如果应用程序没有正确验证和过滤这些参数,攻击者可能通过注入恶意的SQL语句来绕过认证机制。
2、URL 参数:
URL 中的参数,尤其是在动态网页中,可能会被直接拼接到SQL查询中。如果应用程序在构建 SQL 查询时没有正确处理这些参数,攻击者可以通过修改 URL 参数来进行注入攻击。
3、表单数据:
表单提交的数据也需要进行合理的验证和过滤。如果应用程序在接收表单数据后没有正确处理和转义特殊字符,那么攻击者可以利用表单参数进行注入攻击。
4、Cookie 数据:
Cookies 可能包含用户的敏感信息,并且在应用程序中会被使用。如果应用程序没有正确处理和验证 Cookies 中的数据,攻击者可以通过注入攻击来获取或篡改用户的信息。
5、HTTP 头部:
HTTP 请求中的头部信息也可能被应用程序使用到。如果应用程序在处理头部信息时没有进行适当的验证和过滤,攻击者可以通过注入攻击来利用头部信息进行攻击。

六、SQL盲注

盲注:就是在注入过程中,获取的数据不能回显至前端页面。我们需要利用一些方法进行判断或者尝试,这个过程称之为盲注。
1、基于布尔的SQL盲注-逻辑判断

regexp,like,ascii,left,ord,mid

2、基于时间的SQL盲注-延时判断

if,sleep

3、基于报错的SQL盲注-报错回显

floor,updatexml,extractvalue
延迟:
and sleep(1);
and if(1>2,sleep(1),0);
and if(1<2,sleep(1),0);
布尔:
and length(database())=7;
and left(database(),1)='p';
and left(database(),2)='pi';
and substr(database(),1,1)='p';
and substr(database(),2,1)='i';
and ord(left(database(),1))=112;
报错:
and updatexml(1,concat(0x7e,(SELECT version()),0x7e),1)
and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));

七、如何防护SQL注入攻击

1、使用参数化查询或预处理语句:对于静态SQL查询,使用参数化查询,将用户输入的数据作为参数传递给查询,而不是直接拼接到SQL语句中。对于动态生成SQL语句的情况,使用预处理语句,确保用户输入的数据被正确地转义和处理。
2、输入验证和过滤:对用户输入的数据进行验证,确保输入符合预期的格式和类型。例如,检查输入是否是数字、长度是否在有效范围内等。对用户输入的数据进行过滤,移除或转义特殊字符。使用数据库或编程语言提供的函数或API来实现输入过滤和转义。
3、最小权限原则:给予数据库用户最小限度的权限。确保数据库用户只具有执行必要操作的权限,并限制其对敏感数据和表的访问。
4、错误处理和日志记录:不要向用户显示详细的错误消息,尤其是包含数据库相关信息的错误。显示友好的错误消息,同时将详细的错误信息记录到服务器端的日志中,以供后续审计和调试使用。
5、检查更新数据库软件和框架:定期更新和修补数据库软件和应用程序所使用的框架和库,以确保已经修复了已知的安全漏洞。
6、安全审计和代码审查:定期进行安全审计,检查应用程序中是否存在潜在的SQL注入漏洞。进行代码审查,特别是关注与用户输入相关的部分,确保输入的数据被正确验证、过滤和处理。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_46472081/article/details/132928940

-爱代码爱编程

在当今数字化世界中,网络安全、跨境电商和游戏行业都面临着巨大的挑战和机遇。为了在这些领域取得成功,网络工程师和技术专家不断寻找创新的解决方案。本文将探讨Socks5代理IP在这些领域的应用,以提高网络安全、促进跨境电商业务并改进游戏性能。 一、Socks5代理IP和网络安全 匿名性和隐私保护 Socks5代理IP是一种有效的工具,用于保护用户的隐私和

实战src漏洞挖掘全过程,流程详细【网络安全】-爱代码爱编程

前言 记录一次完整的某SRC漏洞挖掘实战,为期一个多星期。文章有点长,请耐心看完,记录了完整的SRC漏洞挖掘实战 渗透过程 因为选择的幸运儿没有对测试范围进行规划,所以此次范围就是没有范围。 先上主域名看一眼,看看能收集到什么有效信息: 发现存在搜索框: 测试点+1 对页面点点点没发现什么有用的页面。 抓包看看,发现网站搭建了C

域名解析--nslookup和dig-爱代码爱编程

dig (Domain Information Groper) dig 是一个功能强大且更灵活的 DNS 查询工具,通常在 Linux 和 macOS 等 Unix-like 操作系统上使用。以下是 dig 的一些常见用法

-爱代码爱编程

文章目录 一、互联网行业二、P2P金融行业三、电商行业四、政务行业总结 一、互联网行业 通用业务模块业务逻辑漏洞登录暴力破解用户名密码撞库验证码爆破和绕过、手机号撞库、账户权限绕过注册恶意用户批

利用 soar 加快事件响应并加强网络安全-爱代码爱编程

随着攻击面的扩大和攻击变得越来越复杂,与网络攻击者的斗争重担落在了安全运营中心 (SOC) 身上。SOC 可以通过利用安全编排、自动化和响应 (SOAR) 平台来加强组织的安全态势。这一系列兼容的以安全为中心的软件可加快事件

网络安全(黑客技术)自学规划-爱代码爱编程

一、什么是网络安全         网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。         无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透,也有 Web 防御技术(WAF)。作

电动车充电桩存在网络安全风险吗?-爱代码爱编程

近年来,随着纯电和混动汽车数量的爆炸式增长,其配套的充电桩的需求也呈直线攀升趋势。不过,这些充电桩可能面临着独特的网络安全风险。只要黑客们掌握了足够的相关信息,他们不但能够远程关闭供电网络,甚至会入侵和篡改汽车的设置。下面,我们将深入讨论此类至关重要的安全问题。 为什么电动汽车充电桩会存在网络安全风险? 2021年,美国曾宣布其目标是在现有 1

国家网络安全周 | 天空卫士ceo刘霖在《中国网信》杂志发表署名文章-爱代码爱编程

由中共中央网络安全和信息化委员会办公室、中华人民共和国国家互联网信息办公室主管的《中国网信》2023年第9期总第21期,在2023年国家网络安全宣传周开幕式时同期发布。《中国网信》杂志致力于宣传解读中央网络安全和信息化委员会

网络安全(黑客)自学-爱代码爱编程

 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域, 都有攻与防两面性,例如 Web 安全技术,既有 Web 渗透, 也有 Web 防御技术

保障网络安全:ip代理识别api的作用与应用-爱代码爱编程

引言 随着互联网的不断发展,网络安全问题已经变得愈发重要。在网络上,恶意用户可以利用IP代理隐藏其真实身份,从而发动各种网络攻击或欺诈行为。为了保障网络安全,IP代理识别API成为了一种不可或缺的工具,本文将深入探讨其作用

网络安全深入学习第六课——热门框架漏洞(rce— weblogic反序列化漏洞)-爱代码爱编程

文章目录 一、Weblogic介绍二、Weblogic反序列化漏洞历史三、Weblogic框架特征1、404界面2、登录界面 四、weblogic常用弱口令账号密码五、Weblogic漏洞介绍六、Webl

socks5代理、ip代理与网络安全:保护你的爬虫和隐私-爱代码爱编程

在数字时代,数据是黄金,网络安全成为至关重要的问题。无论是保护个人隐私还是进行爬虫数据采集,代理技术已经成为网络工程师的必备工具。本文将深入探讨Socks5代理、IP代理以及它们在网络安全和爬虫应用中的重要性。 1. 了解Socks5代理 Socks5代理是一种网络协议,允许应用程序通过中间服务器与目标服务器通信。与HTTP代理不同,Socks5代理可