SQL注入绕过 Waf 之联合注入
2019-09-29 13:30:26 Author: mp.weixin.qq.com(查看原文) 阅读量:65 收藏

oxo1 前言

开局一张图、内容全靠编

每次看到上图、网站仿佛如下图回复你的响应。

oxo2 Bypass

我的思路是先输入内容看拦截那些参数、再根据拦截的参数来FUZZ。

随手输入 and 1=1、明显 and 会被拦的

1、判断注入

利用符号来绕过(还有很多的符号这里就不一一尝试了)

mysql> select '1'*0;
+-------+
| '1'*0 |
+-------+
|     0 |
+-------+
1 row in set (0.00 sec)

mysql> select '1'*1;
+-------+
| '1'*1 |
+-------+
|     1 |
+-------+
1 row in set (0.00 sec)

页面返回正常

页面返回错误

2、判断字段数

输入 order 不拦、但是输入 order by 就拦了、所以Fuzz的点就在by

Fuzz 可以用 Burp 或者 python 脚本之类的、经过Fuzz随手选一条

成功绕过

3、判断回显

和上面的套路一样、输入完整的Payload就会拦截、所以继续Fuzz

select 这个参数

同样的方法、同样的配方

成功绕过

4、获取信息

套路一模一样、骚年应该知道要怎么做了

这时候你还去Fuzz吗?其实不用、随手输入 (/*!)*/就绕过了

5、判断表名

在我有点得意的时候、点下火力全开

然后、没然后了、我TM绕不过了、2333...

6、另寻方法

polygon 可以报错、应该可以利用、说试就试。成功知道库名、表名和列名。利用前提你是要知道列名才行。

知道了表名、再利用表名来相继得到username和password

UNION SELECT * FROM (SELECT * FROM users JOIN users b USING(id))a

7、获取具体值

oxo3 文末

这里利用了报错注入+联合注入、结合使用绕过Waf获取到想要的值。前方道路绕不过的时候、不如先另寻捷径。

oxo4 参考

  • 404师傅写的 MYSQL_SQL_BYPASS_WIKI(非常推荐阅读)

    https://github.com/aleenzz/MYSQL_SQL_BYPASS_WIKI/


文章来源: https://mp.weixin.qq.com/s/hW0aMYSGPogStGmc4IHR7g
如有侵权请联系:admin#unsafe.sh