Midnight Monologues

日々勉強したことを書いてきます

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へアクセスするとメッセージのみが記載されたサイトが表示される。

cookiegarlic : 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


問題文よりPowershellhistory情報を確認する。
 

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にチャレンジした方が勉強になったかもしれぬ...
  • 激務過ぎてほぼ時間が取れないので、いい気晴らしにはなった。