BugkuCTF-MISC题猫片
python知識點
^是按位異或操作符
[::-1]能令列表反向
解題流程
題目提示:LSB BGR NTFS
下載之后就是一個叫png的文件,沒有后綴,那么加后綴
打開Stegsolve直接就Analyse-----Data Extract,根據提示LSB,BGR,一頓嘗試
發現了PNG這個敏感字樣,save bin 為png文件
010 editor打開(或者WinHex)
很明顯的png文件頭格式,將前兩個字節刪除,保存打開之后,發現是半張二維碼
被修改高度的可能極大,修改為長和高一樣大,保存
得到一張完整的二維碼
但是二維碼不太對勁,是反色的,進ps一改就好(不過也可不改直接掃描即可)
識別二維碼得到一個鏈接
打開并下載文件
下載下來,是一個壓縮包,里面有一個文本文檔,flag.txt
最后根據hint里面的提示“NTFS”,根據大佬的說法,這是一類流隱寫,需要用到工具
ntfstreamseditor,然而。。這里還有一個坑就是,這壓縮文件一定要用winrar來解壓才會產生這樣的效果
先用winrar解壓
然后用NTFS Streams Editor掃描
這個題目解題的一個轉折點就是從數據流里提取出來那個已經編譯過的py程序,我們需要拿去反編譯
將pyc文件導出,使用在線反編譯工具進行反譯,結果如下
^是按位異或操作符,求其逆過程只需要再進行一次異或操作
[::-1]能令列表反向,因此秘文在解密前需要顛倒順序
將反譯之后腳本下載之后寫 解密腳本
def decode():ciphertext = ['96','65','93','123','91','97','22','93','70','102','94','132','46','112','64','97','88','80','82','137','90','109','99','112']ciphertext.reverse()flag = ''for i in range(len(ciphertext)):if i % 2 == 0:s = int(ciphertext[i]) - 10else:s = int(ciphertext[i]) + 10s=chr(i^s)flag += sreturn flagdef main():flag = decode()print(flag)if __name__ == '__main__':main()得到flag: flag{Y@e_Cl3veR_C1Ever!}
總結
以上是生活随笔為你收集整理的BugkuCTF-MISC题猫片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lambda总结
- 下一篇: BugkuCTF-WEB题前女友