15
15关源码次关输入点在username和passwd框
并且关闭了回显,只能用时间盲注来爆出数据库。
首先测试闭合方式,使你添加在后面的代码能够正确执行
这里我用” ’or 1=1 # “
时间盲注用 if 来判断数据库名称,payload:
if(ascii(substr(database(),1,1)),null,sleep(5))=112#
16
查看16关源码
发现与15关不同的地方就是闭合方式不同
闭合方式: “)
17
查看源码我们发现你在username中得到输入被带入了上面的if判断,也就是说username框被限制了,我们从passwd框入手,但我们在username中的输入必须是数据库中存在的用户名,否则passwd不生效。
18
查看源码我们发现uname和passwd做了一些限制,但是18关可以在user agent上动手脚,因为他在页面上返回了user agent信息,但是需要输入正确的用户名密码
借助burp 抓包看看;
输入payload:' or updatexml(1,concat(0x7e,database(),0),1) or'
19
查看源码我们发现引入了referer 过滤了用户名密码 那我们就从referer入手,bp抓包;
成功拿到数据库版本号;