網鼎杯第一場WriteUP—-china H.L.B 團隊
文章地址:https://www.o2oxy.cn/1661.html
1、簽到題
回復1f5f2e進入下一關
2、Clip
下載題目是Disk 文件。第一反應是linux虛擬硬盤。
用winhex 打開如圖:
在winhex中第196280 發現了png的頭文件如圖:
png 16進制文件頭以 89504E47開頭
第一張圖片:
第二張圖片
使用PS拼接如下如:
3. minified
用Stegsolve 打開圖片
打開 Stegsolve 選擇Data Extract 查看圖片通道,如圖,
選擇0 通道發現是LSB 隱寫。
分別把 alpha green 和blue 的0通道另存為 再進行異或處理 最終在alpha 和green 中發現flag
4、beijing
題目給了我們一個linux 下可執行的程序、放在虛擬機執行如下:
拖到IDA 里面進行嘗試分析一下程序的邏輯、經過分析程序主要處理的兩個函數、主要邏輯如下”
main 函數21次調用了encode 函數 然后將返回的結果按照字符打印如下
encode 函數按照a1 的數值進行對飲的亦或運算、返回char 類型結果
查看或部分對飲的數據段和對應的hex 數據
數據段數據hex數據
這里可以看到這段數據大部分都是可見字符、因此可以假設flag 就在這段數據中、但是順序是被打亂的、而正確的main 函數的中的順序
即
encode :
return flag[i]^xor[i]
main:
list[] <– 記錄正確的flag打印順序
print encode(list[i])
按照上面的理論 、可以得到如下的分組:
最后運算腳本:
python:
result=”
for i in range(0,20):
result +=flag[list[i]]
print result
Flag: flag{amazing_beijing}
5、advanced
把題目放入linux 中嘗試運行了一下:
得到的數值進行ASCII 轉換如下
解密得到內容使用腳本得到flag 如下:
Flag{d_with_a_template_phew}
PDF 下載:http://www.o2oxy.cn/wp-content/uploads/2018/08/China-H.L.B-網鼎杯部分WriteUp.pdf