アップロードラボの問題解決

Pass-01jsチェック

条件:フロントエンドがサフィックス名を制限している(.jpg / .png / .gif)
.phpファイルを.jpg / .png /.gifに変更します

Pass-02はコンテンツタイプを確認します

条件:バックエンドがMIMEを制限している
ここに画像の説明を挿入します

パス-03ブラックリストバイパス

条件:バックエンドはサフィックス(.asp / .aspx / .php / .jsp)(ブラックリスト)を
制限し
ます。Apacheのhttpd.confに次の構成コードがあることを前提として、.phtml .phps .php5.phtをアップロードできます。

AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml

ここに画像の説明を挿入します

パス-04.htaccessバイパス

条件:.htaccessバイパス
ブラックリストは、.htaccess
前提条件(1.mod_rewriteモジュールが有効になっています。2.AllowOverrideAll)を除いて、問題のあるサフィックスのほとんどすべてを拒否した
ため、最初に次の内容の.htaccessファイルをアップロードします。

SetHandler application/x-httpd-php 

このようにして、すべてのファイルがphpとして解析されます
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

パス-05ドット+スペース+ドットバイパス

検証では最初にファイル名の両端のスペースが削除されますが、作成するサフィックス名には両端にスペースがないため、第10レベルの方法を使用してバイパスできます。つまり、ドットスペースドットバイパス(。。)です。 、したがって、この検証は無効です。その後、サフィックスの最後のドットが削除され、スペースの1つが除外されます。現時点では、アップロードされたファイルのサフィックスは.phpです。ブラックリストに含まれていないため、正常にアップロードできます。また、Windowsオペレーティングシステムのため、ファイルサフィックスの最後のドットも削除されるため、バイパスが完了しました。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

補足:実際、この質問は**。user.ini **を介してバイパスされますが、何度か試しましたが成功しませんでした。将来は成功しました。このメソッドを追加します。

パス-06ケースバイパス

状態:ケースバイパス
ここに画像の説明を挿入します

パス-07スペースバイパス

条件:スペースをバイパスする
この質問はサフィックス名を削除しないため、サフィックス名にスペースを追加することでバイパスできます。
ここに画像の説明を挿入します

パス-08ポイントバイパス

条件:ドットバイパス
サフィックス名の末尾のドットは処理されません。Windows機能を使用すると、サフィックス名の最後の「。」が自動的に削除されます。サフィックス名に「。」を追加してバイパスできます。
ここに画像の説明を挿入します

パス-09 :: $ DATAバイパス

サフィックス名の「:: DATA」フィルタリングされませんphp + windowsの場合:ファイル名+ ":: DATA 'がフィルタリングされた場合。php+ windowsの場合:ファイル名+" ::D A T A 'フィルターを通過するラインに挿入ますのp HのP+W I N- D O W S状況の条件としてであれば、テキスト要素の名前+「」 DATA "は::DATA以降のデータをファイルストリームとして扱い、サフィックス名をチェックしません。":: DATAの後のデータは、ファイルストリームとして扱われ、サフィックス名をチェックしません。保つ "::D A T Aの数データとしてテキスト流れ処理ないことが押収された測定された後に接尾辞そしてポールホールド「ファイル名の前にWindowsの機能を使用して、あなたが追加することができます。 『DATA :: $ DATA』をサフィックス名にバイパスします:
ここに画像の説明を挿入します

パス-10ドット+スペース+ドットバイパス

コードは最初にすべてのを削除します。ファイル名の最後にあるスペースを削除し、次にファイル名の前後のスペースを削除してから、strrchar関数を使用してを検索します。ファイル名のサフィックスを確認しますが、元のファイル名を確認します。ファイルが最終的に保存されたときに名前を変更せずに使用されるため、1.php ...(dot + space + dot)を使用してバイパスできます
ここに画像の説明を挿入します

パス-11二重書き込みバイパス

ブラックリストフィルタリング、ブラックリストのサフィックスを空に置き換え、1回だけ置き換えるので、二重書き込みでバイパスできます
ここに画像の説明を挿入します

パス-1200切り捨て

ホワイトリストの判断ですが、$ img_pathは直接接続されているため、%00の切り捨てでバイパスできます。

切り捨て条件:PHPのバージョンが5.3.4未満であり、PHPのmagic_quotes_gpcがオフになっています。

ここに画像の説明を挿入します

パス-1300が切り捨てられました

save_pathパラメーターはPOSTを介して渡されるか、00で切り捨てられます。これは、POSTがGETのように%00を自動的にデコードしないため、バイナリで変更する必要があるためです。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

パス-14画像の馬のバイパス

ファイルの最初の2バイトを読み取ってファイルの種類を判断し、画像を直接アップロードして画像を馬にすることができます。画像に直接
ここに画像の説明を挿入します
ここに画像の説明を挿入します
アクセスしても、画像はPHP解析として扱われないため、ファイルインクルードを使用する必要があります。脆弱性
ここに画像の説明を挿入します

Pass-15 getimagesize()-ピクチャーホース

この質問は、getimagesize関数を使用してファイルの種類を判別することです。または、ピクチャーホースによってバイパスすることもできます。方法は、pass-14と同じです。
ここに画像の説明を挿入します

パス-16exif_imagetype()-ピクチャーホース

ここでは、php exif_imagetypeモジュールを使用してファイルの種類を判別し、picture horseを使用してバイパスします。この方法は、pass-14と同じです。

Pass-17セカンダリレンダリング

接尾辞の名前、コンテンツタイプを判断し、imagecreatefromgifを使用してそれがgif画像であるかどうかを判断し、最後に2回目のレンダリングを行った後、リンクを参照できます:詳細についてはこの記事を参照してくださいただし、繰り返し発生する場合、PHPコードは2回目のレンダリング後も変更されます。

Pass-18の競合状態

これが条件付きの競合です。最初にファイルをサーバーにアップロードしてから、ファイルのサフィックスがホワイトリストに含まれているかどうかを確認します。含まれている場合は名前を変更し、そうでない場合は削除して、1.phpにアクセスするだけでアップロードできるようにします。削除される前に、それを使用することができます。Burpの侵入者モジュールはアップロードを続け、その後、アドレスにアクセスして更新し続けます。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

パス19コンペティション

条件付き競合の問題もありますが、この質問はファイルサフィックス名をホワイトリストで判断し、ファイルサイズやファイルの有無などを段階的にチェックするため、連続して写真をアップロードできます。条件付きの競争では、名前を変更するには遅すぎる可能性があります。したがって、アップロードは成功します。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

パス-2000が切り捨てられました

move_uploaded_file()関数のimg_pathは、postパラメーターsave_nameによって制御されるため、save_nameの00切り捨てでバイパスできます。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/guo15890025019/article/details/110067768