这是之前测试时候遇到的,系统上挂了云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
领取专属 10元无门槛券
私享最新 技术干货