目次
ファイルアップロード攻撃フレームワーク
画期的な戦略
ファイルアップロードのUpload-Labsパスへようこそ。次に、各レベルのアップロードバイパス方法を紹介します。各レベルをバイパスする方法は複数あります。
less-1-jsの制限
方法1
1.1文のトロイの木馬を含む1.phpファイルを直接アップロードします
<?php phpinfo(); ?> |
アップロード時にbpキャプチャをオンにし、[アップロード]をクリックするとダイアログボックスが表示されましたが、トラフィックがプロキシソフトウェアのbpを通過しなかったため、フロントエンドアップロードの制限であると推測されました。ソースを確認しました。コードを記述し、jsアップロード制限機能があることを発見しました。
要素でこの関数を見つけて、直接削除します
次に、[アップロード]をクリックすると、アップロードが成功します。ここで、アップロードされたファイルアドレスをページ要素で表示し、アクセスできます。
方法2
または、最初にpngファイルをアップロードしてから、phpのサフィックスを変更して、バイパスするパッケージをキャプチャすることもできます。
方法3
bpはフロントエンドjsを自動的に削除するように設定されており、アップロードを正常に直接アップロードできます bp remove js
less-2-MIMEタイプの検出
方法1
原則:そのコンテンツタイプ(mime)は、アップロードしたファイルに基づいてクライアントによって生成されます
クリックしてphpをアップロードすると、bpがトラフィックをキャプチャしました。フロントエンドの制限を除外する
1.表示されるファイルタイプが正しくありません
2. phpサフィックスをpngサフィックスに変更しますが、それでも機能しません。コンテンツがチェックされていると思いますか?そのため、コンテンツを1に変更しましたが、それでも機能しませんでした
3.次に、MIMEタイプ検出によってファイルのコンテンツタイプを制限すると考えました。つまり、サーバーはContent-Type値に従ってアップロードタイプと一致するかどうかを検出します。一致しない場合、アップロードは許可されません。そのため、Content-Typeはimage / pngに変更し、この時点でアップロードは成功しています。phpサフィックスも正常にアップロードできます
4.ソースコードを表示する
方法2
content-type(mime)は、アップロードしたファイルに基づいてクライアントによって生成されるため、pngファイルを直接アップロードすると、content-typeがimage / pngとして配置され、アップロードが成功します。
less-3-ブラックリストの制限
php3、php5、phtmlなど、ブラックリストにないファイルサフィックスをアップロードします。
少ない-4-
方法1:.htaccess
ブラックリスト制限方法を使用して、コードを観察し、.htaccess攻撃について.htaccessファイルがフィルタリングされていないことを確認します
1.pngファイルをphpファイルとして実行します
2.別のpngファイルをアップロードします。内容はphpコードです
3.写真にアクセスする
方法2:Apacheファイル名の解析の脆弱性
Apacheファイル名解決の脆弱性(5.2.x未満)(info.php.xバイパス)、ポータル-》Apacheファイル名解決の脆弱性を悪用することでバイパスできます
less-5-大文字の接尾辞PHPバイパス
これはブラックリストでもあり、サフィックスを大文字のPHPに変更するだけです。
少ない-6スペースバイパス
ブラックリストの検出でもあります。ソースコードのファイルサフィックスはドットでフィルタリングされますが、スペースはフィルタリングされないため、ファイルサフィックスの後にスペースまたはドットまたはドットを追加することはバイパスできます。
less-7-クリックしてバイパス
これはブラックリストの検出でもあります。ソースコードのファイルサフィックスはスペースでフィルタリングされますが、フィルターポイントがないため、ファイルサフィックスの後にドットまたはドットを追加することはバイパスできます。
less-8- :: DATA
:: $ DATAをフィルタリングせずにブラックリストを検出することもできます。ウィンドウで、ファイル名+ ":: $ DATA"が:: $ DATAの後のデータをファイルストリームとして扱う場合、サフィックス名は検出されず、ファイル名はその目的である:: $ DATAの前に保持されます。接尾辞を確認してください
例: "phpinfo.php :: $ DATA" Windowsは、末尾の:: $ DATAを "phpinfo.php"に自動的に削除します。
less-9-ドットスペースドットバイパス
ブラックリストの検出でもあります。ソースコードのファイルサフィックスはドットとスペースでフィルタリングされるため、ドットとスペースのサフィックスはバイパスできます。
less-10-二重書き込みバイパス
ソースコードがファイルのサフィックスを小文字に置き換えないこと、およびブラックリストのサフィックスが空に置き換えられることを確認してください。これにより、二重に書き込むことでバイパスできます。
less-11-GETタイプ00の切り捨て
このレベルから開始すると、ホワイトリストに登録されます
ホワイトリストの判断であるため、アップロードパスを制御できますが、$ img_pathは直接接続されているため、%00の切り捨てを使用してバイパスできます。
less-12-POSTタイプ00の切り捨て
このレベルと前のレベルの違いは、00の切り捨てがPOSTで使用され、バイナリで変更されることです。POSTはGETのように%00を自動的にデコードしないためです。2eを00に変更します
少ない-13-絵の馬
このレベルでは、絵馬のアップロードが必要です。イメージホースは、ファイルインクルードの脆弱性のファイル名を無条件に解析する機能、ポータル-"ファイルインクルードを使用して、ファイルインクルードの脆弱性と組み合わせて使用できます 。
ポータル-「絵の馬を生成する方法」
少ない-14-絵の馬
このレベルでは、GIF画像の馬をアップロードする必要があります
ポータル-「絵の馬を生成する方法」
少ない-15-絵の馬
レベル13と同じ
少ない-16枚の馬
このレベルは、サフィックス名、コンテンツタイプを包括的に判断し、imagecreatefromgifを使用してそれがgif画像であるかどうかを判断します。JIF画像をアップロードするだけです
-17レース状態が少ない
パケットを繰り返し送信する方法、ポータル- "侵入者はペイロードなしでデータパケットを送信します
次に、シェルにアクセスし、F5キーを押し続けてブラウザーを更新すると、競合他社からアクセスできることがわかりました。
less-18-条件付き競争-PictureHorse
このレベルでは、ピクチャーホースをアップロードし、コードを確認して、次のことを確認する必要があります。このレベルでは、ファイル拡張子をホワイトリストで判断し、ファイルサイズ、ファイルが存在するかどうかなどを段階的に確認します。ファイルをアップロードした後、ファイルの名前を変更すると、同じ条件が存在します。競合の抜け穴。げっぷを継続して使用して、イメージホースをアップロードするためのデータパケットを送信できます。条件付きの競合のため、プログラムの名前を変更するには遅すぎるという問題があります。次のイメージホースは正常にアップロードされ、名前を変更するには遅すぎます。
less-19-システム機能
このレベルでは、アップロードした画像の名前を変更できます
保存した画像の名前を.php。に設定します。これにより、フィルタリングをバイパスできます。
-心に住む場所がない場合、それはいたるところをさまようでしょう。