返老還童
-
一拿到apk粗悯,先在虛擬機(jī)打開看看apk有什么行為虚循。可以看到只有一個校驗flag的功能样傍。
-
反編譯apk横缔,得到源碼,就能看到對flag操作的類衫哥。a函數(shù)是檢查flag的茎刚。
-
繼續(xù)往下看,可以看到a撤逢,b處理過后的值最終要傳到check_flag.html膛锭。
-
所以就進(jìn)去b看看對flag做了什么操作。(以下提取class b到sublime)蚊荣。b函數(shù)對flag進(jìn)行了運(yùn)算初狰。
-
再去check_flag.html看看js代碼。處理后是這樣的互例,只有第一個functions有用奢入。
- 寫腳本爆破上面的計算:
這個js函數(shù)就是求a,b的值媳叨。解出:a=91,b=35
腥光。最后將值重新載入,就能得到flag:
d2lu-bmVy-Y7hp-bgtl
至此糊秆,分析完成武福。
總結(jié)
之前了解過xman出的題質(zhì)量都挺高的,這次有幾道腦洞題扩然,花了很多時間都沒解出來艘儒。比如“txt”那道題,因為聯(lián)系到mobile,我就一直在用手機(jī)的九宮格鍵界睁,這樣就是:974856321觉增,提交flag不對,甚至想到在拼音輸入法中每個數(shù)字對應(yīng)幾個字母還是不對翻斟,唯獨(dú)沒有想到是電腦鍵盤(因為沒往電腦那方面想)的九宮格數(shù)字:314256987逾礁。 而且,這也是我第一次遇到純數(shù)字的flag访惜,一般flag都有規(guī)范的嘹履,限定長度和形式。 “中二”那道題也已經(jīng)提取到壓縮包了债热,知道應(yīng)該有兩層加密解密砾嫉,第一層在第一天就猜到要用QR的hash作為密鑰用AES解密二維碼掃出來的base64,得到明文就應(yīng)該是壓縮包的解壓密碼窒篱。但是做不出來焕刮,于是嘗試各種hash,還是解不出來墙杯,沒想到要用AES的CBC模式填充hash配并。 正常賽題,每個文件的信息點(diǎn)的轉(zhuǎn)彎不會超過兩個高镐,這兩道題繞的我很迷糊溉旋。 孔雀翎那道出的挺好的,還專門借了朋友廢棄的手機(jī)來裝xpose嫉髓,IDA也可以調(diào)試com.reverse.myapplication了观腊,可惜時間不夠了。 個人認(rèn)為腦洞題可以少出一點(diǎn)岩喷,畢竟選拔賽主要的目的是選拔有技術(shù)基礎(chǔ)的恕沫。 最后监憎,還是自己太菜了纱意,寒假好好自學(xué)吧,準(zhǔn)備一下TCTF鲸阔,希望不會再被大佬們吊打偷霉。