时间注入-子查询

某次渗透测试发现个注入
sqlmap palyload
 host=%27AND+(SELECT+5106+FROM+(SELECT(SLEEP(5)))ulus)+AND+%27LkvT%27%3D%27LkvT

想尝试下手工注入
 host=1' and sleep(5) '1'='1

结果不行,因为前面的语句如果没有值是不会触发后面的and的,看了下sqlmap语句 (SELECT+5106+FROM+(SELECT(SLEEP(5)))ulus),在本机的数据库测试了一下

这个结果有点奇怪,查了下资料
https://blog.csdn.net/shiyong1949/article/details/80923083
子查询共氛围非相关子查询和相关子查询,所有才有上图的结果
非相关子查询的执行不依赖与外部的查询。
执行过程:
(1)执行子查询,其结果不被显示,而是传递给外部查询,作为外部查询的条件使用。
(2)执行外部查询,并显示整个结果。
非相关子查询一般可以分为:返回单值的子查询和返回一个列表的子查询,

相关子查询的执行依赖于外部查询。多数情况下是子查询的WHERE子句中引用了外部查询的表。
执行过程:
(1)从外层查询中取出一个元组,将元组相关列的值传给内层查询。
(2)执行内层查询,得到子查询操作的值。
(3)外查询根据子查询返回的结果或结果集得到满足条件的行。
(4)然后外层查询取出下一个元组重复做步骤1-3,直到外层的元组全部处理完毕


然后就是

SELECT+5106+FROM+(SELECT(SLEEP(5)))ulus
这个意思就是将SELECT(SLEEP(5)) as ulus,如图
 

发表评论 / Comment

提示:本文章评论功能已关闭