搭建 Struts S2-045/S2-046 模拟环境
Contents
搭建 Struts S2-045/S2-046 模拟环境
环境搭建
1 安装 Docker
2 拉取镜像
3 启动镜像
脆弱 URL
http://192.168.248.128/memoshow.action?id=3
docker pull medicean/vulapps:s_struts2_s2-045
# 注意 前半部分为宿主机端口,后半部分为容器内端口
docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-045
安全测试
http://192.168.248.128/memoshow.action?id=3
使用 struts-scan 检测目标 URL 时,返回结果为 无漏洞 。 (不可检测,但可以利用)
与此同时,使用 安恒/天融信等的 GUI 工具, 以及 Struts2-Scan 等均可检测到漏洞
(感觉是 struts-scan 使用的 检测 payload 有问题) 具体原因还需要进一步抓包分析。
# struts-scan.py
python2 struts-scan.py http://192.168.248.128/memoshow.action?id=3
python2 struts-scan.py -u http://192.168.248.128/memoshow.action?id=3 -i struts2-045
# Struts2Scan.py
python Struts2Scan.py -u http://192.168.248.128/memoshow.action?id=3
python Struts2Scan.py -u http://192.168.248.128/memoshow.action?id=3 -n S2-045 --exec
# 退出 shell 直接 Ctrl + C
其他问题排查
问题一 virtualenv 里的 docker-compose
我的测试环境的 docker-compose 是安装在一个 virtualenv 里的。
当 我 sudo 了之后, root 脱离了这个 virtualenv,于是报了一个错误 not found。
(venv_daily) team@blacklotus ~/develop/vulhub/struts2/s2-048 (master) sudo docker-compose up -d
sudo: docker-compose: command not found
然而不用 sudo 的话 docker-compose 也起不来
(venv_daily) ✘ team@blacklotus ~/develop/vulhub/struts2/s2-048 master docker-compose up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
解决方案,直接切换成 root 来处理
su -
source /home/team/develop/venv_daily/bin/activate
问题二 不完整的 HTTP 响应
使用 phith0n 的 vulhub 的时候,启动容器后。使用 curl http://127.0.0.1:8080
发送 HTTP 请求后,只能得到不完整的 HTTP 响应。
curl -i -s -k -X $'GET' \
-H $'Host: 127.0.01'
-H $'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0'
-H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H $'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2'
-H $'Accept-Encoding: gzip, deflate'
-H $'Connection: close'
-H $'Upgrade-Insecure-Requests: 1' $'http://127.0.0.1'
推测服务端配置错误。尝试过重启宿主机和重启容器,并没有效果。
暂未解决该问题,最终是 使用 vulapp 替代的。
(未来如需解决可以考虑在 代码审计 知识星球 中提问)
参考资料
1 漏洞环境搭建
https://iassas.com/archives/583f4516.html
2 使用 Docker 环境快速搭建靶机环境
https://cloud.tencent.com/developer/article/1047740
3 struts-scan
https://github.com/Lucifer1993/struts-scan
4 Struts2-Scan
https://github.com/HatBoy/Struts2-Scan
5 菜鸟阿姨网安技术学习笔记:使用Docker快速搭建靶场 – 网安杂谈
wechat
Leave a Reply