1. ホーム
  2. Web プログラミング
  3. PHP プログラミング
  4. phpのヒント

ファイルアップロードの脆弱性とバイパス技術を使用したphpセキュリティ攻撃の詳細

2022-01-14 15:04:53

プリアンブル

ファイルアップロードの脆弱性は、ユーザーのアバターアップロードやドキュメントアップロードなど、ファイルアップロードが可能な場所で主に発見されます。この脆弱性は、非常に被害が大きいものです。ファイルアップロードを通じて、攻撃者はウェブシェルをアップロードし、getshell操作を行うことで、任意のコマンドを実行できるシステムシェルを取得することができます。また、その後の大規模なトロイの木馬のアップロードや権限昇格のための良い基盤になります。

ファイルアップロードの脆弱性のいくつかのシナリオ

次に、ファイルアップロードの脆弱性に対するwafのフィルタリングシナリオをいくつか説明し、回避・攻略する方法を紹介します。

シナリオ1:フロントエンドのjsコードのホワイトリスト判定 .jpg|.png|.gif suffix

このシナリオでは、防御態勢として、アップロードされたファイルのサフィックスをjsコードで判断し、もしそれが .jpg|.png|.gif これら3つのサフィックスを持つファイルは、バックエンドへのアップロードが許可されません。

バイパスされる

一文型トロイの木馬が仕込まれたファイルの拡張子を xxx.jpg|png|gif というように、スクリプトのサフィックスを変更します。アップロードに成功したら、getshellにファイルのパスを訪ねます。

シナリオ 2: バックエンドの PHP コードが Content-type フィールドをチェックする

このシナリオでは、アップロードファイルのリクエストのためのjsコードを通して防御態勢をとります。

php|jsp

{{コード

{{コード {{コード

{{コード

{{コード

{{コード

{{コード {{コード {{コード {{コード {{コード {{コード {{コード

{{コード

{{コード {{コード {{コード

{{コード {{コード {{コード

{{コード

{{コード

{{コード
{{コード

{{コード

{{コード {{コード

{{コード

{{コード

{{コード
{{コード

{{コード {{コード {{コード {{コード {{コード {{コード {{コード

{{コード {{コード

{{コード

{{コード

{{コード
{{コード

{{コード

{{コード

{{コード {{コード

{{コード

{{コード {{コード

{{コード

{{コード

{{コード

{{コード

{{コード

{{コード

{{コード {{コード {{コード

{{コード