上一篇文章说了sqli-labs的less-1到less-10的注入方法,这一篇从less-11开始。
由于从11关开始都是post请求,不会像前十关一样存在符号转成unicode的麻烦,所以不再使用apifox,直接从页面上进行测试。
Less-11
老规矩,还是先从 1'
开始测试:
从描述可以看出来,这次仍然是一个字符串注入。具体的sql大概是:
'select xxx from xxx where xxx='1' and password='' limit 0,1'
但是使用 --+注释不行了,不知道为什么,所以换成了 # 注释:
没有报错了,但是也查不出东西来,很正常,因为根据上面的sql推测,这里查的应该是username,username='1’查不出来是可以想象的。那么我们给它加上一个真条件:
成功了,接下来就可以和less-1一样进行注入了。
Less-12
第12关使用1'
测试的时候,登陆失败但是没有报错:
改成1"
试试:
报错了,并且可以看到双引号后面还有一个括号,接下来可以用 #)
注释掉后面的内容进行注入:
注入成功。
Less-13
老规矩,使用 1'
进行测试:
可以看到,注入点是 1')
,直接带上 1=1 看看登陆成功的结果:
登陆成功了,但是不像前两关一样会回显数据,但是可以根据结果使用布尔盲注,具体方法可以参考前一篇文章的Less-5。
Less-14
首先使用1'
测试,没有报错,这里就不截没有报错的图了。然后使用1"
,报错了:
可以看出,注入点为1"
,加上1=1看看登陆成功是什么样子:
登陆成功了,其他的和Less-13是一样的。
Less-15
第15关和13关一样,但是不会返回报错信息:
由于不返回报错信息,只能直接把or 1=1拼上去进行测试:
接下来进行布尔盲注。
Less-16
16关和15关同理,我们先直接用1' or 1=1 #
:
不行,把单引号换成双引号再试:
还是不行,接下来开始穷举往后加括号:
一开始我从1')
开始穷举,加了几个括号都不行,换成双引号了,果然注入点是1")
。
至此,POST请求的盲注也介绍完成了,从第17关开始与前面只涉及到查询语句的注入有很大的不同,我需要研究研究怎么搞。