jimdixx/Digital-Archiving-Solutions-RCE-PoC
GitHub: jimdixx/Digital-Archiving-Solutions-RCE-PoC
针对LPD服务器中Shell命令注入漏洞的CTF专用概念验证利用程序,通过构造特殊的作业名称字段实现远程代码执行。
Stars: 0 | Forks: 0
# LPD Server — Shell 注入漏洞利用 (RFC 1179)
## 免责声明
本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他行为中,由本软件或本软件的使用或其他交易引起或与之相关。
作者对使用此概念验证代码造成的任何损害或伤害概不负责。
此漏洞利用程序专为针对“CORPORATE DIGITAL ARCHIVING SOLUTIONS v1.02” CTF 模拟靶机的夺旗赛(CTF)目的而创建。
请勿对任何您未获得明确书面授权的系统使用此代码。未经授权访问计算机系统是违法的。
## 概述
这是一个针对基于 Python 的 LPD (Line Printer Daemon) 服务器中远程代码执行(RCE)漏洞的概念验证漏洞利用程序,该服务器实现了 RFC 1179 协议的简化版本。
该漏洞存在于服务器使用 `subprocess.Popen(shell=True)` 处理来自 LPD 控制文件中 `J`(作业名称)字段的未经清洗的用户输入的过程中。通过在作业名称中注入 shell 元字符,攻击者可以跳出封闭的引号,并在目标主机上执行任意操作系统命令。
此外,远程服务器强制执行轻量级的“遗留接收处理程序”验证,要求作业名称必须以有效的归档标识符开头。此漏洞利用程序会在发送注入 payload 之前,预先添加一个可配置的标识符以满足该检查。
## 漏洞详情
**受影响软件:** Corporate Digital Archiving Solutions v1.02
**漏洞类型:** CWE-78 — 操作系统命令中使用的特殊元素处理不当(操作系统命令注入)
**易受攻击的代码:**
```
subprocess.Popen(f"echo 'Archive: {job_name}' >> /tmp/archive.log", shell=True)
```
## 使用方法
1. 在您的攻击机上运行:`nc -lvnp 443`
2. `python3 poc.py RHOST -q TARGET_QUEUE -c 'COMMAND'`
标签:逆向工具