問題解決の一部
話題ソース
の世界のウェブマスター先進地域での攻防を
、タイトルを取得するには1の後、この場所不審な... index.phpページを見つけ、デバイスが完全に表示されません。
2.ソースコード見つかった?ページ=インデックス、ページがこの引数を取得するには、index.phpのページのソースコードを読み取ろうと、抜け穴を含むソースコードファイルが読み込み可能かもしれないと思うように見えます
PHPは、直接プロトコルを用いて、コードを読み取ります
/index.php?page=php://filter/read=convert.base64-encode/resource=index.php
ブラックボックスLFIの脆弱性を決定するための方法:
その後、裁判官からの簡単なURL、URLパス、ディレクトリ、ファイル、PAG、中に関連するキーワードページ、アーカイブ、P、ENG、 言語ファイル、ファイルが存在する可能性が抜け穴が含まれています。
ここでは、ソースコードは?ページ=インデックスを求めているので、それほどのindex.phpにソースコードを読む
3. BASE64は、ソースを解読
ソースコードを取得するために、監査を開始した後、
//関数は、入力と出力の実現を容易にするため、そのことができます唯一のインサイダーテスト機能を開発されています IF($ _SERVER [ 'HTTP_X_FORWARDED_FOR'] === '127.0.0.1'){ エコー "<br>私の管理者を歓迎<br>!"; $パターン= $ _GET [号]。 $交換= $ _GET [担当者]。 $被写体= $ _GET [サブ]。 IF(ISSET($パターン)&& ISSET($置換)&& ISSET($対象)){ preg_replace($パターン、$の交換、$件名)。 }他{ (); } }
ここにpreg_replaceは、コマンドインジェクションの脆弱性が存在するかどうかをテストしようとすると、そこにある
機能の役割は:交換用の交換に検索対象をマッチング部パターン。
ここでは明らかにコード実行の問題につながる、にpreg_replace / Eモードを用いて調べています。すなわち、特許値と同じサブの値で、担当者コードが実行されます。
127.0.0.1へのXFF後、三つのパラメータに来GET。ここにpreg_replace関数を呼び出します。あなたが渡すことができるように、フィルターにはパットが「/ E」の文の置き換えが実行を取得しようとした後にトリガ脆弱性、するphpinfoについての最初の実行をトリガし、存在しません
成功の実装
と利用システム(「LS」)は、ファイルディレクトリを取得しようとします
ターゲット・ファイルにCD
システム(「CD + s3chahahaDir /フラグ +%26%26の+ LS」)
現在の顔を意味する空間によって分離された符号化の問題を回避するために、ここで使用することができないが、+の使用、%26%26 &&、コマンドが成功すると、コマンドの後ろに進みます。
最後に、ファイルflag.php取得するにはcatコマンドを使用して
取得に成功したフラグを。
概要:
アイデアが確立する:
1ページ=インデックスでは抜け穴が/index.php?page=php://filter/read=convert.base64-encode/resource=index.php使用して、ソースコードを含むファイルの読み取りがあるかもしれないと思いますか?元のindex.phpを取得する
ソースコード監査を読んだ後2.を。発見にpreg_replace、コマンドが実行される脆弱性は、ファイルのディレクトリへのアクセスを使用してみてください、最終的には、対象ファイルが見つかり
ファイルは、フラグはフラグを得る存在読んで3.を。
メインスキルポイント:
に含めるの脆弱性をファイル
PHP擬似契約のPHP://フィルタ
にpreg_replaceによって引き起こされるコマンドが実行される脆弱性
----------------
免責事項:この記事はCSDNのブロガーCliffordWRです「オリジナルの記事、CC 4.0 BY-SAの著作権契約、複製、元のソースのリンクと、この文を添付してくださいに従ってください。
オリジナルリンクします。https://blog.csdn.net/CliffordR/article/details/98472156