Less-9(GET-Blind-Time based-Single Quotes)
打开 Less-9
页面,可以看到页面中间有一句 Please input the ID as parameter with numeric value
,那么先使用 ID
这个参数通过 GET
方式传入一个数值。
确定注入点
注入语句: ?id=1
。可以看出没有回显查询结果。
接着试一下 ?id=1'
,发现和 ?id=1
的页面没有区别,没有报错也无法判断成功还是失败。此时就可以考虑另一种盲注的方式: 时间盲注
。
时间盲注与布尔型注入的区别在于,时间盲注是利用 sleep()
或 benchmark()
等函数让数据库执行的时间变长,根据返回页面的时间来判断使用的注入语句成功与否。时间盲注多与if函数结合使用。如: if(a,b,c)
,此if语句的含义是,如果 a
为真则返回值为 b
,否则返回值为 c
。
根据本关的名字提示,得知SQL语句是单引号闭合,接着尝试 ?id=1' and if(1=1,sleep(2),0) --+
和 ?id=1' and if(1=2,sleep(2),0) --+
确定真的存在注入点,使用前一条注入语句时,网页两秒之后刷新成功,而使用第二条语句,直接返回,由此确定存在注入点。
根据返回时间确定数据
思路:
注入语句: ?id=1' and if(length(database())>1,sleep(2),1)--+
,由此可以判断出当前数据库名。
此时就可以将上面注入语句中的 database()
换成自己想要使用的语句,不断猜解得出数据,同上一关。
Less-10(GET-Blind-Time based-double Quotes)
第十关和第九关的思路是一样的,只是在注入语句中将闭合SQL语句使用的单引号换成了双引号。
确定存在注入点的语句: ?id=1" and if(1=1,sleep(2),0) --+
、 ?id=1" and if(1=2,sleep(2),0) --+
。
Original: https://www.cnblogs.com/Timesi/p/16669024.html
Author: 顾北清
Title: SQLI-LABS(Less-9、10)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578203/
转载文章受原作者版权保护。转载请注明原作者出处!