これは実践問題です。ウェブサイトのページを開くと、認証ページが表示され、ユーザー名が admin であることがわかりますので、パスワードをブルートフォースで解読する必要があります。
パケットキャプチャで Authorization 認証を発見しました。
パケットを intruder に送信し、トラバーサルポイントを設定します。
上記のトラバーサルポイントは base64 エンコードされており、デコードすると admin:123 になりますので、ペイロードも同じ形式に設定する必要があります。
ペイロードタイプを「Custom iterator」に設定します。
最初の値はユーザー名 admin です。
2 番目はコロンです。
3 番目は辞書ファイルをロードします。
ペイロード処理を追加し、上記の内容(admin:123)を base64 でエンコードします。
設定が完了したら、ブルートフォースを開始し、結果を取得します。
ユーザー名とパスワード adminを取得しました。
ユーザー名とパスワードでログインすると、キーが表示されます。
弱いパスワードでログインを試みますが、失敗しました。robots.txt にアクセスしてみると、sql ファイルが見つかりました。
sql ファイルにアクセスしてみると、admin ユーザーのアカウントとパスワードが見つかりましたが、パスワードは MD5 で暗号化されています。
MD5 を解読し、パスワード qwerty を見つけました。
ディレクトリトラバーサルを試み、他のディレクトリがあるかどうかを確認します。御剣を使用してスキャンしましたが、phpmyadmin が見つかりましたが、401 が表示されました。
認証がないため、認証を持ってディレクトリをブルートフォースするしかありません。
有用なものは見つかりませんでした。
MD5 でブルートフォースしたパスワードでログインし、成功しました。バックエンドの画面は以下のようになります。
バックエンドには画像のアップロード機能がありますので、ファイルのアップロードを試みます。
PHP ファイルを直接アップロードすると失敗します。
content-type を image/jpeg に変更すると、ファイルのアップロードに成功します。
バックエンドページに戻り、リンクをコピーします。
webshell のリンクはhttp://10.1.10.71/uploadfile/16899143312s.php です。webshell に接続し、HTTP ヘッダーと base64 認証を追加します。
base64 でエンコードします。
webshell に正常に接続しました。
コマンドを実行し、システム権限を取得します。
アカウントを追加します。
3389 を開放し、システムに組み込まれているツールを使用して開放します。
自分で作成したアカウントではキーを取得できませんので、管理者のパスワードを変更する必要があります。
キーはゴミ箱にあり、復元する必要があります。