やられアプリ BadTodo - 24 適切でないアップロートファイル制限

前回:BadTodo - 23 evalインジェクション - demandosigno

CWE - CWE-434: Unrestricted Upload of File with Dangerous Type (4.14)

Todoリストにはファイルをアップロードする機能があります。

これを使いPHPファイルなどをアップロードしようとすると「この拡張子のファイルはアップロードできません」と出ます。

ぱっと見アップロードできていないように見えますが、

BadTodo - 19 ディレクトリ・リスティングで確認できたアップロード先/attachmentを見てみるとアップロードされており閲覧できてしまいます。

このままだとウイルスファイルやWebShell・バックドアなどの悪意のあるファイルをアップロードされる可能性があります。

多重拡張子

ファイル名を「xxx.php.jpg」などとしてアップロードするとエラー無くアップロードできてしまいます。

Apacheの多重拡張子にご用心 | 徳丸浩の日記
Apacheの多重拡張子は脆弱性ではなく仕様ですので、できればアプリケーション側で対処した方がよいと私は考えます。

補足:確認の際にNginxのキャッシュによりディレクトリ表示が更新されない場合がありますので、その場合は下記を参考にキャッシュクリアしてください。
BadTodo - Nginxのキャッシュの削除

blog.flatt.tech

次回:やられアプリ BadTodo - 24.1 NULLバイト攻撃(+ファイルインクルード) - demandosigno

/* -----codeの行番号----- */