Struts2绕过WAF读写文件与命令执行技巧【案例分享】
版权申诉
87 浏览量
更新于2024-03-01
收藏 12.08MB DOC 举报
struts2 绕过 waf 读写文件及另类方式执行命令.doc
在之前的项目和众测中,多次遇到了Struts2漏洞,不过都是016版本。每次只是简单证明了存在漏洞,由于waf的存在,没有进行深入利用。在这里简单记录一下。
0x01 背景
通过xray或者Struts2漏扫可以扫描到网站存在Struts2漏洞。但是在执行命令时会发现直接Connection Reset,很明显是被waf拦截了。
0x02 探究waf规则
逐一删除关键字,发现拦截的关键字有三个:Runtime、dispatcher。Runtime是一个很熟悉的关键字,一般用来执行命令,拦截了这个关键字,执行命令就会比较困难。dispatcher比较陌生,查了资料以后发现是用来读取Struts2的请求对象中的关键字。getRealPath直接意思是获取真实路径。
0x03 尝试突破
在绕过waf关键字的前提下进行读、写文件,比如webshell落地,或者直接执行命令,如CS上线等。
dispatcher绕过
可以通过拼接进行绕过,部分代码如下:
```Java
String path = request.getRealPath("/");
File file = new File(path+"/test.jsp");
FileWriter fileWriter = new FileWriter(file);
fileWriter.write("test");
fileWriter.close();
```
通过这种方式,可以绕过waf的检测,成功进行了文件的写入操作。
在绕过waf的基础上,可以通过使用文件包含漏洞,引入外部的恶意脚本,进一步执行命令或者获取系统信息等操作。另外,还可以通过修改Struts2的配置文件,来实现一些特殊的攻击,比如绕过权限验证等。
总结来说,Struts2绕过waf读写文件及另类方式执行命令的过程中,关键在于理解waf的规则,灵活运用一些绕过技巧,并且在实际操作中深入挖掘漏洞的细节,这样才能最大程度地发挥漏洞的利用价值。同时,也需要十分谨慎,避免对目标系统造成不可挽回的损失。
121 浏览量
121 浏览量
807 浏览量
书博教育
- 粉丝: 1
- 资源: 2837
最新资源
- StimulsoftReports.Net Web
- django-rest-pandas:via通过Django REST框架提供Pandas数据帧,以用于客户端(例如d3.js)可视化和离线分析(例如Excel)
- 程序_编程教程_
- vca-firebase:Firebase的Vue3合成Api(Vite)
- variance-networks:方差网络
- 电容器android-issue-4240-复制
- html5 canvas实现响应鼠标的酷炫粒子图形变形动画效果源码.zip
- Scratch编程练习项目
- 步进电机PLC程序测试.rar
- ForegroundTask_delphi_
- StrappedGlint13
- 使用JSON和AngularJS的主要细节示例
- imaxcharger:Imax B6迷你充电器记录和控制
- 数据库课程设计的过程.zip
- 抽认卡:学习指南
- vis2ascii:vis2ascii,一种将 VisAssF8 AssBlaster C64 程序集转换为 ASCII 的工具