メッセージを収集する
ホストの発見
ポートスキャン
4つのポート。2つのオープンhttpサービスがあります。
ディレクトリスキャン
1.80ポート:
2.8011ポート:
脆弱性の発見と悪用
1.最初にポート80に移動します
。ホームページに情報がありません。
他のディレクトリにアクセスします。
/ LICENSE:
役に立たない情報。
/robots(.txt)
/ development:
一時的に棚上げされたログインポイント。
/ vendor /:
ディレクトリトラバーサルですが、有用な情報はありません。
2.ポート8011を確認します。
apiというディレクトリは1つだけです。
このAPIは、フランクのサーバーとの通信に使用されます
が、まだ開発中です。
これらの4つのパスを順番に開き
ます。開くことができるのは、3番目のパスのみです。ファイルパラメータがありませんか?ファイルに含まれていますか?
GETメソッドが機能しないPOST:
ファイルインクルードの脆弱性があります。
開発中の別のAPI(APIパス)があるので、バックアップファイルはありますか?
ファイルリーク:
開発ログインポイントのアカウントパスワードを考えると、非常に重要なリマインダーですが、パスワードは暗号化されています。
ツールを使用してクラックする:
さて、ログインに行きます:
*これは私の未完成のツールリストです
-アップロードツール(完了しましたが、セキュリティレビューが必要です)
アップロードポイント(/ development / uploader /)があることを説明します。
これで、ファイルのアップロードとファイルのインクルードがすべて利用可能になりました。
しかし、ファイルがどこにアップロードされているのかわかりません。
最初にファイルインクルードを調べて、詳細情報を取得します。
構成ファイルが含まれています:
/etc/apache2/sites-enabled/000-default
このパスが見つかりました。
最初にファイルを正常にアップロードします。
パスはupload.phpであることがわかります。
次のファイルを使用して、ソースコードを取得します。
file = php://filter/read=convert.base64encode/resource=/var/www/development/uploader/upload.php
<?php
$target_dir = "FRANKuploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded to my uploads path.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
ファイルストレージディレクトリを取得し、監査に合格しました。
提示価格の接尾辞と内容を判断しました。
画像の馬をアップロードする:
リバースシェル
ここでは、いくつかのphpリバースシェルスクリプトを使用しましたが、すべて失敗しました。最後に、kaliに付属のスクリプトを使用して、IPアドレスとポートを変更しました。
スクリプトパス:
右エスカレーション
カーネル情報の表示:
汚い牛を使って権利をエスカレートする:
コンパイル:
gcc -pthread dirty.c -o exp -lcrypt
実行、ユーザーの切り替え:
総括する
以前に作成したものと非常によく似ており、ファイルインクルード+ファイルアップロードでもあります。
今回は.bakからソースコードを入手してください。