MENU

SQL绕waf--持续补充

February 13, 2022 • Read: 847 • Web

绕waf大全及原理

1. 大小绕过,主要是mysql中关键字大小写不敏感造成

1.png

2. 符号绕过and or等。

2.png

3. union,where,limit绕过

union绕过主要是添加or扩大查询的范围
where绕过则用limit1,1来绕过
limit过滤了则用group by + having来绕过

主要原理是,group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组。
having 主要是起到一个where也就是限制条件的效果
3.png
4.png

4. group by、绕过

group by绕过就使用group_concat这个函数,这个函数可以把想要输出的所有东西都放在一行来显示。如果只要取其中的某一些数的话,就可以使用substr函数来实现,substr(查询的信息,a,b)ab分别表示要查询的信息的一个范围

5. select及单引号过滤,十六进制过滤

select及单引号过滤的话,可以使用或逻辑符号连接,并使用substr联合一起判断信息的正确与错误,如果屏蔽单引号,则需要使用十六进制来判断即可,若是十六进制也不行,则使用binary函数来绕过。

  • 单引号过滤还可以使用编码的方法,将 utf-8 转换为 utf-16 或 utf-32,例如将 ' 转为 utf-16 为�

6. 空格过滤,=号过滤

  1. 空格过滤可以使用注释符/**/或者URL编码,或者以下这些字符
符号说明
%09TAB 键(水平)
%0a新建一行
%0c新的一页
%0dreturn 功能
%0bTAB 键(垂直)
%a0空格
  1. =号过滤可以使用like关键字,使用语句select * from userinfo where passWord like '%123456%';
  2. ?id=(sleep(ascii(mid(user()from(2)for(1)))=109))使用括号也可以当做空格

7. 宽字节注入绕过转义函数

在使用PHP连接MySQL的时候,当设置“set
character_set_client = gbk”时会导致一个编码转换的问题,也就是我们熟悉的宽字节注入,当存在宽字节注入的时候,注入参数里带入% DF%27,即可把(%5C,是的URL编码)吃掉
也就是使用%df可以和%5c一起合成一个汉字字符,这样就把原本的转义反斜杠给去掉了

8. 二次注入,绕过过滤。

原理来自数据库的信息同样是不可信的。当前端需要验证数据库的信息时,由例子可以看见不需要判断密码是否正确,只需要判断用户名正确就可以修改密码了。

5.png

Last Modified: February 26, 2022