前回:やられアプリ BadTodo - 23 evalインジェクション - demandosigno
CWE - CWE-434: Unrestricted Upload of File with Dangerous Type (4.15)
Todoリストにはファイルをアップロードする機能があります。
これを使いPHPファイルなどをアップロードしようとすると「この拡張子のファイルはアップロードできません」と出ます。
ぱっと見アップロードできていないように見えますが、
BadTodo - 19 ディレクトリ・リスティングで確認できたアップロード先/attachment
を見てみるとアップロードされており閲覧できてしまいます。
(サーバーのキャッシュにより表示が更新されない場合がありますが少し時間を空けてみてください。参考:BadTodo - 28 キャッシュからの情報漏洩)
このままだとウイルスファイルやWebShell・バックドアなどの悪意のあるファイルをアップロードされる可能性があります。
多重拡張子
ファイル名を「xxx.php.jpg」などとしてアップロードするとエラー無くアップロードできてしまいます。
Apacheの多重拡張子にご用心 | 徳丸浩の日記
Apacheの多重拡張子は脆弱性ではなく仕様ですので、できればアプリケーション側で対処した方がよいと私は考えます。
補足:確認の際にNginxのキャッシュによりディレクトリ表示が更新されない場合がありますので、その場合は下記を参考にキャッシュクリアしてください。
BadTodo - Nginxのキャッシュの削除
次回:やられアプリ BadTodo - 24.5 色々混ぜてやってみる1(XSS - CSRF -WebShell) - demandosigno