记某次测试绕过某安全厂商云WAF,实现文件上传

这是之前测试时候遇到的,系统上挂了云WAF,测试发现存在文件上传,但是被拦截,最后绕了过去,这里记录下绕过的过程。

因为之前截图保存不多,所以可能不是非常完整,但是大概过程还是有的。

过程大概如下:

发现有文件上传功能

有意的下载了上传的swf,反编译看了下,对于上传是没做啥处理的

其实测试时候也可以不用反编译看一波flash,直接测就行

这里还是简单看一看学习下吧(其实这里可以直接跳过,都是前端的校验)

下面跟踪下代码流程

因此对于Flash校验是没有的

但是前端传递了允许的文件后缀

下面就看看请求上传时,服务端是否有校验了

有个注意的地方是,这里使用Flash进行数据交互时, 当时Burpsuite是不能直接抓到上传的数据包的,WebSocket也没有,使用了最新版的Filddler能够获取到上传的数据包,怀疑是Flash走的是原生TCP或者其他的。

访问下,看看服务器如何响应请求的

下面就是绕过云WAF来实现上传了

上传asp后缀文件,云waf拦击

网上找了下,对于asp.net的应用,还有一种后缀的脚本是ashx

尝试上传,发现绕过了这个云WAF

很开心,马上菜刀连一波,但是 . . .

访问生成的一句话,菜刀无法回连,被WAF拦截

这个时候,我能想到的有两种方式来处理这个拦截。

寻找变形的可以绕过WAF的一句话。

通过上传的ashx生成单功能的aspx脚本,在访问aspx时,脚本直接执行某些操作,并将结果写入到网页中回显到客户端,控制的数据流不走WAF。

数据流大概如下:

显然我觉得第二种方式靠谱点。

这里解释下第二种是什么意思:

原来上传的ashx脚本,生成一句话aspx脚本,如下:

我们将生成的ashx的内容改成单功能的脚本,获取系统版本信息,如下:

这样就能绕过这里的云WAF,执行获取我们想要的数据了,这里没给出最后的截图,是因为之前测试时候没截图保留。

下面是网上找的一下上传绕过的总结,贴上来看看吧

最后有什么说的不对的,请留言交流!

参考链接:

http://blog.csdn.net/kongjiea/article/details/24290373

https://www.cnblogs.com/myboke/p/5579236.html

https://www.cnblogs.com/duanhuajian/archive/2013/07/17/3196049.html

http://www.freebuf.com/articles/web/6472.html

http://blog.51cto.com/pnig0s1992/495155

http://www.legendsec.org/1665.html

http://blog.51cto.com/0x007/1694928

http://blog.csdn.net/zhifeiya/article/details/41789659

http://www.cnblogs.com/micua/p/3502644.html

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171217G00BSQ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券