0
点赞
收藏
分享

微信扫一扫

WAF绕过-漏洞利用

小猪肥 2022-01-04 阅读 65

目录

.漏洞利用

在漏洞利用中,主要就是以下几个方面需要绕过WAF

  1. SQL注入
  2. 文件上传
  3. XSS跨站
  4. 文件包含
  5. RCE执行
    下面就写一些思路吧。

1.SQL注入

  1. 敏感字符绕过

    如 union,ordery by 等相关关键字,使用/**/ (注释)绕过 WAF
    对敏感字段的查询如 database 后使用 database/**/

    2.联合绕过

    %23 代表 #
    %0A 代表一个换行符
    union %23%0Aselect 1,2,3;%23

如:

id=1%20union %23%0Aselect 1,2,3;%23
id=1/**&id=-1%20 union%20 select%201,2,3%23*/
id=1%20union/*!44509select*/%201,2,3 (大于 4.4509 版
本运行)

注:/!x/ 代表当 mysql 数据库版本大于 x 时, mysql 不再当作注
释,从而将其运行,这是 mysql 的特性

Sqlmap工具绕过

1.绕过指纹识别

需要伪装 UA(--user-agent="Mozilla/5.0 (compatible; Baiduspider/2.0;
+http://www.baidu.com/search/spider.html)"或者--random-agent),
或者修改 sqlmap 下自带的 sqlmap.conf 文件下的 agent 也可达到效果

2.绕过敏感字段识别

用到自带模块(–tamper=rdog.py )

3.绕过cc防护

上代理池(–proxy=http:/IP:port)

4.宝塔基础上绕过
BTWAF 会对/*关键字进行拦截,所以在上述的基础上想绕过 BT 就需要使用截断技术,故在每个/*前面加上%00 即可绕过了
在这里插入图片描述
截断条件

1. PHP 版本小于 5.3.4
2. php.ini 中的 magic_quotes_gpc 设置为 Off

magic_quotes_gpc 函数在 php 中的作用是判断解析用户提示的数据,如包括有:post、get、cookie 过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误


2.文件上传

1.数据溢出

WAF 一般检测上传参数的位置,所以在上传参数构造垃圾数据使其溢出
垃圾数据写入的位置:最后以分号结尾

2 符号变异

就是在抓包中修改 filename 的值,将 filename 中的一个双引号去除 使得 waf 无法获取双引号的内容,从而无法检测出执行文本,达到绕过的效果。利用的是双引号里的是一个字符串,但是当我们把一个双引号去除后,就会变成了一个变量或其它值,从而不再变成一个字符串被 WAF 所检测到

3.分号绕过
由于分号代表一个语句的结束,所以当我们使用分号后,WAF 检测到的是 x.jpg 文件名,对于后面的文件被忽略了也就没检测到,使得绕过了waf

4.换行绕过
利用 WAF 读取换行时为\n ,而数据包却能完整的去读出来换行,例如:WAF 读取到的为 filename 为 x.\np\nh\np 从而 WAF 无法获取到 php 的执行文件达到绕过效果

5.重复数据

  • 借助原有数据绕过

    利用 content-Disposition:* from-data; name=”upload_file”; 的值带入 filename 中, 从而使得WAF 在检测时直接检测到 filename 为 content-Disposition:* from-data; name=”upload_file”; 从而作为白名单而绕过了 WAF 而服务器接收到的确实 x.php

  • 利用白名单绕过

    重复构造 filename=”.jpg” 最后在以 filename=”.php”结尾从而利用递归的问题, 绕过了WAF,类似前面的文件上传后端部分的双写绕过


3.XSS绕过

1. 标签语法替代
2. 特殊符号干扰
3. 提交方式更改
4. 垃圾数据溢出
5. 加密解密算法
6. 结合其它漏洞绕过

XSStrike 工具绕过
使用延时或者代理池绕过 CC 即可

--timeout 或者--proxy

4.RCE-WAF绕过

1.加密解密绕过

可逆 base64,url 编码
不可逆 md5

2 关键字绕过
如 phpinfo(); 可以替换成如下写法:
$y=str_replace('x','','pxhpxinxfo()');assert($y);

3.提交方法

利用变量覆盖加上请求方法达到该效果,如本来是 POST 方法,修改后变成 GET 方法从而达到绕过 WAF
$a=$_GET['x'];$$a=$_GET['y'];$b($_POST['z']);

举报

相关推荐

0 条评论