Byte Bandits CTF 2023 - Writeup
土, 04 2月 2023, 06:30 UTC — 日, 05 2月 2023, 06:30 UTCに開催されたByte Bandits CTF 2023 に会社のチームで参加した。 他のチームメンバーの陰で6問解いたので、以下にWriteupを記載する。
Web
Hi-Score
Reach 100 clicks per second for a reward. web.bbctf.fluxus.co.in:1003
指定されたURLへアクセスすると画面をクリックするサイトが表示される。
1秒以内に100回クリックする必要があるようだ。
ソースを確認するとJavascriptで雑に難読化されているが、/.secretion/flag へアクセスすればflagが取れることが分かる。
以下サイトへアクセスするとflagがかかれたファイルが取得できる。 http://chal.bbctf.fluxus.co.in:1003/.secretion/flag
flag : flag{THAtS_15_A_SM4rT_m0ve}
Improper Error Handling
This website is giving errors. Can you figure it out ? web.bbctf.fluxus.co.in:1001
指定されたURLへアクセスするとパスワードを入力するサイトが表示される。
短い文字を入力するとError: Length too short のメッセージが表示される。
試しに大量の文字を入れるとハッシュ化されたメッセージが表示される。
文字数を38文字で入力するとflagが表示される。
flag : BBCTF{tHis_i5_1t_Y0u_CraCk3D_iT}
Hash Browns
twist, lick, dunk and trail web.bbctf.fluxus.co.in:1004
指定されたURLへアクセスするとメッセージのみが記載されたサイトが表示される。
cookieにgarlic : cmztpaurxxnoqz3p2on73msbohg5sk74l2fxnxp27gky6cdjqzqq6nad
が指定されているだけで入力部分は無し。
ヒントに玉ねぎの画像が追加されていることからonionルーティングを確認する。
cookieの値より、cmztpaurxxnoqz3p2on73msbohg5sk74l2fxnxp27gky6cdjqzqq6nad.onion にアクセスするとflagが記載されたサイトにアクセスできる。
flag : flag{Y0U_H4V3_B33N_W4RN3D}
Misc
Peer Pressure
Don't let them get into your mind web.bbctf.fluxus.co.in:1002
指定されたURLへアクセスすると Click Here と書かれたボタンのみが表示される。
ソースコードよりボタンを押すとyoutubeの動画に飛ばされる。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <form action="/aGVhZA==" method="GET"> <button type="submit">Click Here</button> </form> </body> </html>
対象のURLへOPTIONSでアクセスするとHEADリクエストが使えることがわかる。
HTTP/1.1 200 OK Server: Werkzeug/2.2.2 Python/3.10.6 Date: Sun, 05 Feb 2023 02:48:10 GMT Content-Type: text/html; charset=utf-8 Allow: HEAD, GET, OPTIONS, POST Content-Length: 0 Connection: close
対象サイトへHEADリクエストでアクセスすると挙動が変わり、png画像が応答される。
取得したPNG画像の"tEXtComment"の部分にflagが記載されている。
flag{D0_N0T_G3T_PR355UR3D}
Forensic
Random Requests
I recorded these very random http requests. Can you help me decode them? attachement : random_requests_pcapng
添付ファイルは1Mbyte程度のpcapファイル。
NW通信の中身はhttpリクエストの/flag=0の形でバイナリデータとしてデータを送信している。
/flag=0と/flag=1の部分を抽出し、つなげた上でBase64エンコードすればflagが確認できそうだ。
httpリクエストでアクセス先の0と1を抽出してbase64デコードしたものがflagになる。文字の間は%20で区切られている。
C:\Wireshark>tshark -r C:\random_requests.pcapng -Y "http.request" -T fields -e http.request.full_uri http://www.google.com/flag=0 http://www.google.com/flag=1 http://www.google.com/flag=0 http://www.google.com/flag=1 http://www.google.com/flag=1 http://www.google.com/flag=0 http://www.google.com/flag=1 http://www.google.com/flag=0 http://www.google.com/flag=%20
↓
01011010 01101101 01111000 01101000 01011010 00110011 01110100 01110101 01010100 00110001 01010010 01100110 01010101 00110010 00111001 01100110 01100011 01101010 01010010 01110101 01011010 01000111 00111001 01110100 01011000 00110010 01100111 00110011 01001110 00110011 01000010 01100110 01100011 01101010 01001110 01111000 01100100 01010100 01001101 00110001 01100100 01001000 01001110 00111001
↓
ZmxhZ3tuT1RfU29fcjRuZG9tX2g3N3BfcjNxdTM1dHN9
flag : flag{nOT_So_r4ndom_h77p_r3qu35ts}
Memory Dump
I was learning powershell when my pc suddenly crashed. Can you retrieve my bash history? Download link: https://drive.google.com/drive/folders/1igAY42dIA-xrGMLH5_NVdq5nisVG4YLa?usp=share_link
問題文よりPowershellのhistory情報を確認する。
PS C:\> (Get-PSReadlineOption).HistorySavePath C:\Users\***\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
ConsoleHost_history.txt を探してみる。
┌──(root💀kali)-[/home/kali/Desktop/volatility3] └─# python3 vol.py -f /home/kali/Desktop/Memdump.raw windows.filescan | grep ConsoleHost_history.txt 1 ⨯ 0xc88f21961af0.0\Users\bbctf\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt 216
ConsoleHost_history.txt の中身を確認するとByteBandits-CTF Jan 2023
をキーとしたAES暗号で暗号化していることが分かる。
┌──(root💀kali)-[/home/kali/Desktop/volatility3] └─# python3 vol.py -f /home/kali/Desktop/Memdump.raw windows.dumpfiles.DumpFiles --virtaddr 0xc88f21961af0 Volatility 3 Framework 2.4.1 Progress: 100.00 PDB scanning finished Cache FileObject FileName Result DataSectionObject 0xc88f21961af0 ConsoleHost_history.txt file.0xc88f21961af0.0xc88f1e9b5570.DataSectionObject.ConsoleHost_history.txt.dat ┌──(root💀kali)-[/home/kali/Desktop/volatility3] └─# cat file.0xc88f21961af0.0xc88f1e9b5570.DataSectionObject.ConsoleHost_history.txt.dat $xorkey = bbctf $xorkey = "bbctf" $aescipherkey = "ByteBandits-CTF Jan 2023" $encrypted_flag = "m74/XKCNkHmzJHEPAOHvegV96AOubRnSUQBpJnG4tHg="
192bitのAES暗号(ECBモード)としてシークレットキー:ByteBandits-CTF Jan 2023 で復号するとflagが確認できる。
┌──(root💀kali)-[/home/kali/Desktop/volatility3] └─# echo -n "ZmxhZ3tWMExAdGlMaVR5XzRfZGFfdzFOfQ==" | base64 -d flag{V0L@tiLiTy_4_da_w1N}
flag : flag{V0L@tiLiTy_4_da_w1N}
感想
- 正直Guees問が多い印象だった。同時刻開催のDiceCTFにチャレンジした方が勉強になったかもしれぬ...
- 激務過ぎてほぼ時間が取れないので、いい気晴らしにはなった。