Web的基本漏洞--SQL注入漏洞

news/2024/10/22 6:42:03/

目录

一、SQL注入介绍

1.SQL注入漏洞原理

2.SQL注入漏洞的类型

3.SQL注入漏洞识别

4.攻击方式

5.SQL盲注

时间盲注 

布尔盲注 

报错盲注

6.SQL注入漏洞的危害

7.SQL注入漏洞的防范措施

8.SQL注入漏洞的绕过


一、SQL注入介绍

1.SQL注入漏洞原理

Web程序输入的数据传入到后台处理时,没有做严格过滤,导致其传入的数据拼接到SQL语句中后,被当作SQL语句的一部分执行,从而导致数据库受损

如查询数据、下载数据、写入
webshell 、执行系统命令以及绕过登录限制等。
 
漏洞产生原因(实现条件):
用户对 sql 查询语句参数可控
原本程序要执行的 SQL 语句,拼接了用户输入的恶意数据

2.SQL注入漏洞的类型

通过是否能在页面中显示注入后的结果信息来区分是显注还是盲注

显注类型:

1.联合注入

2.堆叠注入

3.宽字节注入

4.cookie 注入

5.XFF 头注入

6.UA 注入(user-agent 注入)

7,Referer 注入

8.二次注入

9,base64 注入

10.万能密码

11.文件读写

盲注类型:
1.基于时间的盲注 sleep() benchmark()
2.基于布尔的注入
3.基于报错的注入 updatexml() extractvalue() floor() exp()

3.SQL注入漏洞识别

寻找搜索输入框,在输入参数后加‘查看是否报错;尝试简单payload 1 or1=1#

使用sqlmap工具扫描,sqlmap -u url --dbs 列出数据库名,sqlmap -u url -D 库名 --tables 列出表名,sqlmap -u url -D table_name -T 表名 -- columns 列出列名

4.攻击方式

 拿到一个查询条件的Web页面,对输入框做以下事情

(1)判断是否存在注入(and 1=2或者输入’ 看是否有sql语句的报错),注入是字符型(如果是字符型就要考虑闭合单双引号等)还是数字型
(2)猜解SQL查询语句中的字段数(在使用union联合查询中,前后的字段数要保持一致)
(3)确定显示的字段顺序
(4)获取当前数据库
(5)获取数据库中的表
(6)获取表中的字段名
(7)下载数据

5.SQL盲注

盲注:即在SQL注入过程中,SQL语句执行查询后,查询数据不能回显到前端页面中,我们需要使用一些特殊的方式来判断或尝试,这个过程成为盲注

其实就是字面上意思的理解。后台对报错信息进行了屏蔽,当进行输入后,页面只会有正确或者错误的提示,或者干脆就什么提示都没有(我们无法根据报错的信息进行注入的判断)。

盲注类型:
1.基于时间的盲注 sleep() benchmark()
2.基于布尔的注入
3.基于报错的注入 updatexml() extractvalue() floor() exp()
 

时间盲注 

sql时间类型的盲注本质是利用插入的sql语句执行造成时间延迟

如论我们输入的语句是否合法,页面的显示信息是固定的,即不会出现查询的信息,也不会出现报错信息。可以尝试基于时间的盲注来测试。根据页面响应的时间,来判断输入的信息是否正确。

布尔盲注 

布尔盲注的本质是利用注入执行结果的布尔值,来判断是否盲注成功

盲注查询是不需要返回结果的,仅判断语句是否正常执行即可,所以其返回可以看到一个布尔值,正常显示为true,报错或者是其他不正常显示为False

报错盲注

报错盲注的本质是利用查询嵌套再通过报错函数将子查询的数据带出
报错盲注将错误信息与子查询语句中查询的内容带出,并不局限与这种场景,只要能将mysql 错 ,误信息输出都可以尝试进行报错注入。
报错盲注形式上一般是做两个嵌套查询,里面的称为子查询,执行顺序是先进行子查询,所以我们可以通过子查询查询我们想要的数据,然后通过报错函数将我们查询的数据带出。

6.SQL注入漏洞的危害

(1)攻击者未经授权可以访问数据库中的数据,盗取用户的隐私以及个人信息,造成用户的信息泄露。

(2)可以对数据库的数据进行增加或删除操作,例如私自添加或删除管理员账号。

(3)如果网站目录存在写入权限,可以写入网页木马。攻击者进而可以对网页进行篡改,发布一些违法信息等。

(4)经过提权等步骤,服务器最高权限被攻击者获取。攻击者可以远程控制服务器,安装后门,得以修改或控制操作系统。

7.SQL注入漏洞的防范措施

1.预编译 (数据库不会将参数的内容视为 SQL 命令执行,而是作为一个字段的属性值来处理)
2.PDO 预处理 (本地和 Mysql 服务端使用字符集对输入进行转义)
3.正则表达式过滤 (如果用户输入了非法信息则利用正则表达式过滤)

 

代码层面
1.对输入进行严格的转义和过滤
2.使用PDO预处理和参数化 ( Parameterized )

关于预处理和参数化详解:
这种方法一般是在PHP中进行处理的,具体是,
1.先预发送一个sql模板过去
2.再向mysql发送需要查询的参数(不管参数怎么注入,mysql都能知道这是变量,不会做语义解析,起到防注入的效果,这是在mysql中完成的。)

网路层面
1.通过WAF设备启用防SQL Inject注入策略(或类似防护系统)
2.云端防护( 360网站卫士,阿里云盾等)

8.SQL注入漏洞的绕过

  1. 大小写绕过注入
  2. 双写绕过注入
  3. 编码绕过注入
  4. 内联注释绕过注入

http://www.ppmy.cn/news/124580.html

相关文章

MATLAB入门教程||MATLAB位运算||MATLAB集合操作

MATLAB位运算 MATLAB提供位运算,如位,位或和位不操作,移位操作等各种函数 以下的表格显示了常用的按位运算: 函数目的/作用bitand(a, b)整数a和b的逐位ANDbitcmp(a)a的位补码bitget(a,pos)在指定位置pos中获取位,在…

NVIDIA三大专业显卡制造商

早期NVIDIA并没有专业显示芯片产品线,德国艾尔莎(Elsa)公司自行将NVIDIA的RIVATNT系列改为专业卡,并配以自行研发的专业驱动程式进行销售,其实力获得NVIDIA青睐。1999年NVIDIA终于推出专门针对专业级的显示芯片Quadro&…

显卡天梯图2022最新排名

现在很多游戏玩家最关注的就是电脑的显卡性能,一张好的显卡可以带给用户极致的游戏体验感。那目前显卡性能天梯图排名如何呢?下面小编就给大家分享一下2022年8月显卡性能天梯图高清完整版,一起来看看吧。 2022年8月最新显卡天梯图汇总&#x…

rtx3090显卡什么牌子好

国内3090首发就8家厂商非公旗舰当然是猛禽、超级雕、魔龙、火神这几个一般价格猛禽、超级雕最贵,火神、魔龙第二档,所以我觉得火神、魔龙性价比高点 rtx3090怎么样这些点很重要看过你就懂了 http://www.adiannao.cn/dq 现在目前发售的型号:…

什么是显卡

显卡又叫GPU,是专门用于处理图像的,因为图像处理就是矩阵运算(图像是个三维矩阵),显卡拥有非常多的核心。每个处理器有若干个核心,每个核心上有几千万甚至几亿个晶体管,每个晶体管做二进制运算。…

2022最新显卡天梯图,2022显卡天梯排行榜

022年最新版显卡天梯图分享给大家,显卡天梯图就是显卡的性能排行榜,目前显卡主要有Nvidia(英伟达)和AMD(超微半导体)两大品牌,GPU显卡是电脑最核心硬件配置之一,决定图像处理能力。显卡更新换代特别快,Nvidia推出Titan…

AIC显卡品牌排名

AIC显卡品牌排名 文章目录 AIC显卡品牌排名 "技"不如人,勇气可"嘉"不参与排行 一线:华硕、微星、七彩虹; 二线:影驰、索泰、铭瑄、映众、耕升、丽台游戏卡; 仅仅讨论品牌是没有意义的&#xff…

台式计算机的显卡,台式电脑显卡天梯图-台式机显卡性能排名

2021-05-24 访客:次 对于游戏玩家来说,显卡是最重要的硬件之一。对小白来说,显卡的质量基本上是由内存容量来判断的。这是显卡最大的误区之一,也是奸商忽悠小白的手段。显卡的性能主要由架构、流处理器、内核频率、内存带宽、内…