sqli-labs-master Less-1

本文介绍了一种通过SQL注入攻击获取数据库信息的方法。首先利用错误提示猜测查询语句结构,然后通过union select语句获取数据库名称、表名及列名。最终实现对目标数据库的数据泄露攻击。

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

提示提交id值,用单引号试一下,报错:


猜测id值在查询语句中被单引号包裹。

接下来用order by测字段数 测出3个字段。

然后看当前的数据库,构造payload:http://127.0.0.1/sqli-labs-master/Less-1/?id=1'  union select 1,1,database() %23

给我返回了这个id=1的值:


要执行union后的语句就要让union前的查询语句不正确,加个and 1=0:


数据库名字知道了,爆表:


只能显示第一个,这就比较坑了,看了源码发现是有limit 0,1 不过被我%23注释掉了啊...


原来是这个mysql_fetch_array的问题,它从结果中只取一行。

使用group_concat()这个函数,能把这个字段的所有行的结果连在一起返回。


实际上这个函数是与group by配套使用的,但是咱们的语句没有用group by,没有依据哪个字段分组,就把所有字段都连在一起了,详情见:点击打开链接

然后就是爆列名,需要注意的是,爆users这个表,where条件table_name=后面要用users的十六进制,users十六进制是0x7573657273


然后看内容就可以了:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值