概要
TryHackMe「ffuf」のWalkthroughです。
Task2
Q1.What is the first file you found with a 200 status code?
ffuf
を実行します。
$ ffuf -u http://10.10.193.156/FUZZ -w /usr/share/wordlists/seclists/Discovery/Web-Content/big.txt
最初にアイコンのファイルが見つかりました。
favicon.ico [Status: 200, Size: 1406, Words: 5, Lines: 2, Duration: 236ms]
A.favicon.ico
Task3
Q1.What text file did you find?
Task2での実行結果からrobots.txt
の存在を確認できました。
robots.txt [Status: 200, Size: 26, Words: 3, Lines: 2, Duration: 234ms]
A.robots.txt
Q2.What two file extensions were found for the index page?
indexページを対象にファイル拡張子を特定します。
ffuf -u http://10.10.193.156/indexFUZZ -w /usr/share/seclists/Discovery/Web-Content/web-extensions.txt
phps
,php
を発見しました。
.phps [Status: 403, Size: 290, Words: 21, Lines: 11, Duration: 235ms]
.php [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 2441ms]
A.php,phps
Q3.What page has a size of 4840?
実行結果からabout.php
ファイルが該当すると分かりました。
about.php [Status: 200, Size: 4840, Words: 331, Lines: 109, Duration: 237ms]
A.about.php
Q4.How many directories are there?
ffuf
を実行します。
$ ffuf -u http://10.10.193.156/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories-lowercase.txt
4つのファイルを検出できました。
config [Status: 301, Size: 314, Words: 20, Lines: 10, Duration: 234ms]
docs [Status: 301, Size: 312, Words: 20, Lines: 10, Duration: 234ms]
external [Status: 301, Size: 316, Words: 20, Lines: 10, Duration: 236ms]
server-status [Status: 403, Size: 293, Words: 21, Lines: 11, Duration: 235ms]
A.4
Task4
Q1.After applying the fc filter, how many results were returned?
-fc
で非表示にするHTTPレスポンスコードを指定します。
$ ffuf -u http://10.10.193.156/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt -fc 403
11個のファイルを検出できました。
index.php [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 240ms]
favicon.ico [Status: 200, Size: 1406, Words: 5, Lines: 2, Duration: 234ms]
logout.php [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 235ms]
robots.txt [Status: 200, Size: 26, Words: 3, Lines: 2, Duration: 235ms]
phpinfo.php [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 235ms]
login.php [Status: 200, Size: 1523, Words: 89, Lines: 77, Duration: 4544ms]
. [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 236ms]
php.ini [Status: 200, Size: 148, Words: 17, Lines: 5, Duration: 237ms]
about.php [Status: 200, Size: 4840, Words: 331, Lines: 109, Duration: 235ms]
setup.php [Status: 200, Size: 4067, Words: 308, Lines: 123, Duration: 237ms]
security.php [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 234ms]
A.11
Q2.After applying the mc filter, how many results were returned?
-mc
で表示するHTTPレスポンスコードを指定します。
$ ffuf -u http://10.10.193.156/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt -mc 200
6つのファイルを検出できました。
login.php [Status: 200, Size: 1523, Words: 89, Lines: 77, Duration: 1377ms]
favicon.ico [Status: 200, Size: 1406, Words: 5, Lines: 2, Duration: 235ms]
robots.txt [Status: 200, Size: 26, Words: 3, Lines: 2, Duration: 234ms]
php.ini [Status: 200, Size: 148, Words: 17, Lines: 5, Duration: 234ms]
about.php [Status: 200, Size: 4840, Words: 331, Lines: 109, Duration: 235ms]
setup.php [Status: 200, Size: 4067, Words: 308, Lines: 123, Duration: 238ms]
A.6
Q3.Which valuable file would have been hidden if you used -fc 403 instead of -fr?
-fr
で正規表現を使用することができます。
$ ffuf -u http://10.10.193.156/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt -fr '/\..*'
-fc 403
でフィルタリングした際には見つけられなかったファイルを発見できました。
wp-forum.phps [Status: 403, Size: 293, Words: 21, Lines: 11, Duration: 233ms]
A.wp-forum.phps
Task5
Q1.What is the parameter you found?
パラメータ名をFUZZ
にすることでパラメータ名のファジングを行えます。
$ ffuf -u 'http://10.10.69.164/sqli-labs/Less-1/?FUZZ=1' -c -w /usr/share/seclists/Discovery/Web-Content/raft-medium-words-lowercase.txt -fw 39
id
というパラメータを発見しました。
id [Status: 200, Size: 721, Words: 37, Lines: 29, Duration: 3035ms]
A.id
Q2.What is the highest valid id?
パラメータ名が分かったので値のファジングを行います。
$ for i in {0..255}; do echo $i; done | ffuf -u 'http://10.10.69.164/sqli-labs/Less-1/?id=FUZZ' -c -w - -fw 33
14
が最大のパラメータだと分かりました。
9 [Status: 200, Size: 725, Words: 37, Lines: 29, Duration: 2315ms]
11 [Status: 200, Size: 725, Words: 37, Lines: 29, Duration: 2313ms]
7 [Status: 200, Size: 725, Words: 37, Lines: 29, Duration: 2315ms]
1 [Status: 200, Size: 721, Words: 37, Lines: 29, Duration: 2394ms]
3 [Status: 200, Size: 726, Words: 37, Lines: 29, Duration: 2399ms]
14 [Status: 200, Size: 725, Words: 37, Lines: 29, Duration: 4395ms]
4 [Status: 200, Size: 725, Words: 37, Lines: 29, Duration: 4399ms]
12 [Status: 200, Size: 725, Words: 37, Lines: 29, Duration: 4555ms]
10 [Status: 200, Size: 725, Words: 37, Lines: 29, Duration: 4555ms]
5 [Status: 200, Size: 728, Words: 37, Lines: 29, Duration: 7110ms]
8 [Status: 200, Size: 723, Words: 37, Lines: 29, Duration: 7903ms]
6 [Status: 200, Size: 728, Words: 37, Lines: 29, Duration: 9502ms]
2 [Status: 200, Size: 731, Words: 37, Lines: 29, Duration: 9503ms]
A.14
Q3.What is Dummy's password?
パスワードのファジングを行います。
-X
でHTTPメソッドを-d
でリクエストボディを指定し、-H
でHTTPリクエストヘッダーを指定します。
$ ffuf -u http://10.10.69.164/sqli-labs/Less-11/ -c -w /usr/share/seclists/Passwords/Leaked-Databases/hak5.txt -X POST -d 'uname=Dummy&passwd=FUZZ&submit=Submit' -fs 1435 -H 'Content-Type: application/x-www-form-urlencoded'
パスワードを特定できました。
p@ssword [Status: 200, Size: 1526, Words: 100, Lines: 50, Duration: 1121ms]
A.p@ssword
Task8
Q1.How do you save the output to a markdown file (ffuf.md)?
Hint.format first
オプションの解説をします。
-
-of
- 出力のフォーマットを指定します
- json, ejson, html, md, csv, ecsvの指定ができます
- allで全フォーマットを指定します
-
-o
- ファイルに出力を指定するオプションです
-
md
- Markdown形式を指定します
-
ffuf.md
- 出力するファイル名を指定します
A.-of -o md ffuf.md
Q2.How do you re-use a raw http request file?
-request
で生のHTTPリクエストファイルを使用できます。
-request File containing the raw http request
ffuf -hより
A.-request
Q3.How do you strip comments from a wordlist?
-ic
オプションでワードリストのコメントを除外できます。
-ic Ignore wordlist comments (default: false)
ffuf -hより
A.-ic
Q4.How would you read a wordlist from STDIN?
Task5 Q2で使用したように-w -
と指定することで、出力をワードリストに使用できます。
$ for i in {0..255}; do echo $i; done | ffuf -u 'http://10.10.69.164/sqli-labs/Less-1/?id=FUZZ' -c -w - -fw 33
A.-w -
Q5.How do you print full URLs and redirect locations?
-v
オプションを使用することで、フルURLとリダイレクト先も出力します。
-v Verbose output, printing full URL and redirect location (if any) with the results. (default: false)
ffuf -hより
A.-v
Q6.What option would you use to follow redirects?
-r
オプションでリダイレクトを追跡できます。
-r Follow redirects (default: false)
ffuf -hより
A.-r
Q7.How do you enable colorized output?
-c
オプションで出力をカラー化できます。
-c Colorize output. (default: false)
ffuf -hより
A.-c