NSCTF "SteinsGate"詳細writeup

2021-02-15 ChaMd5安全團隊


  如需要轉載,請先聯繫ChaMd5安全團隊授權。

  未經授權請勿轉載。

NSCTF "SteinsGate"詳細writeup

From ChaMd5安全團隊核心成員 sherlly

0x00 前言

挺不錯的一道題,思路值得學習,所以簡單記錄下。

0x01 恢復文件

查看文件頭為PK,改後綴名為zip,解壓得到三個文件,分別是

0x02 讀加密算法邏輯

算法邏輯主要可分為兩部分:

1.對t0的求解。

其中t0的值和作業系統平臺(Windows/Linux/Darwin),字長位數(32/64),當前用戶uid,隨機小數r(範圍0-2,且最多6位小數),m的md5值有關。

這裡還可以知道t0的位數應該在48左右(5+2+2+7+32)

2.對t1的求解及使用

t1的值由flag的值和t0異或得到(位數也在48左右),之後算法使用了給的圖片文件(DivergenceMeter.jpg),在文件中找和t1各個字符(t1[i])相同的值img[k],並提取索引值k,轉換為字符(k與255取模保證在ascii碼範圍內),遍歷t1生成表l,l的結構大致如下:

得到表l後,縱向遍歷該表,並把讀取數據寫入result,最終得到加密後的flag文件flag.enc。

0x03 恢復t1

由上述邏輯可知,突破點在flag.enc,假設t1取48位,則flag.enc的前48位應該是t1[i] (i=0,1,…,47)的第一個元素,即chr(k1),因此可以通過遍歷圖片文件,將t1的值擴大到包含所有字符(256個)的類表l的索引表table:

得到表table後,遍歷該表的table[i][0]查找和flag.enc的前48位(記為head)分別相同的索引值轉ascii並記錄,得到t1

這裡有個問題,存在多個table[i][0]和head[j]相同的情況,因此還要判斷table[i][1]的情況。列印出幾個值判斷下:

由於t1位數限制關係,因此table[i][1]應該和table[i][0]距離不遠,在文件中查找,基本可以確定A9是t1構成的表l[0][1],因此確定了i,從這裡也可以得到t1的實際位數應該是45位,之後的寫個代碼取flag.enc的46位開始和table[i][1]判斷下就可以,具體看最後的代碼實現部分。

0x04 恢復t0

上一步中得到了t1,因此這一步主要是通過以下幾方面確定t0的值:

1.確定作業系統及字長位數

根據題目提示,flag.txt中含完整flag,也就是說前幾位為』flag{『,將已知的flag與t1異或得到t0的頭幾位為』Darwi』,基本確定作業系統為』Darwin』,又因為python文檔中寫明若為該類型時機器為64位,故得到t0的前8位為』Darwin64』。

2.確定32位md5值

根據題目提示,flag的最後一位應該是』}』,因此md5的最後一位與t1的最後一位異或得到的值應該是』}』,運算得知為』e』,即得到的md5最後一位應該是』e』

m的前幾位已知為『64bit』,開始爆破uid和r1,r1由已知應該是1到3位,uid的位數可以通過t0確定(由於t0為45位,r最少為1位,可以算出uid位數應該在1-4之間[1,45-8-32-1])

寫腳本爆破並對求得的符合要求的md5值(末位為』e』)與t1的末32位異或,找到符合要求的部分flag(只含字母、數字、』_』、』}』)

得到部分flag:』ce_0f_st3ints_G4t3_1p048596_233}

對應md5值為afe46f1497072540f60d793e1e5a2a6e,uid為520,r1為125

3.確定r值

由上述uid的值可以確定r的位數應該為2(45-8-32-3),注意到r的第一位不是0就是1,寫腳本爆破並組合成最終的t0和t1進行異或,列印出符合要求的flag(只含字母、數字、』_』、』{『,』}』)。
這裡有個問題,uid為520時列印出的flag為flag{to7^im91ce_0f_st3ints_G4t3_1p048596_233},改了uid為420才輸出成功。

最終t0:Darwin6442000afe46f1497072540f60d793e1e5a2a6e

最終flag:flag{to7_im91ce_0f_st3ints_G4t3_1p048596_233}

0x05 解密腳本

(微信對圖片的壓縮實在令人厭煩,建議在手機端觀看)

歡迎各位大牛指點   歡迎各位大牛投稿

關於文章的建議和意見都可以留言告訴我們呢

(撒花)

投稿至:admin@chamd5.org

ChaMd5的小八卦全在這裡喲~比心❤


.ChaMd5安全團隊.

悄悄的告訴你

關注會有小驚喜

相關焦點

  • TCTF/0CTF2018 XSS Writeup
    下面寫一種來自@超威藍貓的解法,非常有趣的思路,payload大概是這樣的https://blog.cal1.cn/post/0CTF%202018%20Quals%20Bl0g%20writeupid"><form name=effects id="<script>$.get('/flag',e=>name=e)">
  • 華玉振:與"擺地攤"感同身受
    當共和國總理在莊嚴的全國人大會議上,宣布城市管理要為"擺地攤"寬容時,我的眼睛溼了。三十四年前剛畢業的那年夏天,在家鄉小集鎮的稅務所,因拒絕"出外勤"向"地攤"收稅的風波又勾起我的回憶。所長安排我"出外勤"上街。所謂"出外勤",就是上街丶入村丶進廠,挨家挨戶收稅。我從小厭煩稅務官。據父母講太祖父、祖父都曾經因為挑擔擺攤賣杏、賣黃花菜而被稅務官盤剝過。
  • 記住 |「車牌號」英文可不是"car number"
    記住 | 「車牌號」英文可不是"car number"!留言答案喲~上期回顧「hand up」表達什麼意思?
  • "我,36歲,和甜蜜男談了一場戀愛,傾家蕩產!"
    去年年底,浙江警方偵破一起殺豬盤騙局,顛覆了人們的三觀。這個團夥共有18個人。他們每個人都有一款手寫詳細的"培訓手冊"。從「開發」客戶到後路的每一個步都有劇本。更匪夷所思的是,甚至警察來了如何第一時間藏好手機都設想好了。騙子們的日常工作,就是吃飯,睡覺,上廁所,經營"殺豬盤"。他們與時俱進,隨時調整劇本方案。詳細分析單身女性的特質,感情空虛,有些積蓄,一直沒有遇到自己的靈魂伴侶,心理脆弱。緊緊扣住這些特質,流水化作業。
  • CTF從入門到提升(三)
    國內外著名比賽:國內:xctf聯賽 0ctf上海國內外都有,很強。/02/ctf-field-guide/ http://tieba.baidu.com/p/3933947157 ctf大全https://ctftime.org/event/list/upcoming 各種CTF賽事預告 (ps:國內各個高校或企業舉辦的比賽請進http://tieba.baidu.com/p/3933947157裡面的群) http://reversing.kr/ http://
  • "生孩子"也要AA制嗎?
    她是這樣寫的:"我懷孕六個月了,沒上班在家待著,自己也沒多少存款,我老公今天說生孩子的時候花的醫療費用我倆一人出一半,平攤,我很震驚,想了一天都沒想通他怎麼會這樣說,為什麼呢?"看了之後,我也驚著了。難道是自己落伍了,跟不上潮流了嗎?還是現在的夫妻樣樣都實行AA制,包括生孩子呢?左思右想不得其解,於是便將這故事當新聞說與朋友聽。朋友聽後一陣哈哈大笑,我被朋友笑懵了,問他很好笑嗎?
  • "我談了一場戀愛卻傾家蕩產!"比仙人跳悲劇 10000倍的,居然是這種騙局!
    "殺豬盤"騙錢騙情,讓受害人最後輸的一無所有,真是太可惡了!他們每個人都有一款手寫詳細的"培訓手冊"。從「開發」客戶到後路的每一個步都有劇本。更匪夷所思的是,甚至警察來了如何第一時間藏好手機都設想好了。騙子們的日常工作,就是吃飯,睡覺,上廁所,經營"殺豬盤"。他們與時俱進,隨時調整劇本方案。詳細分析單身女性的特質,感情空虛,有些積蓄,一直沒有遇到自己的靈魂伴侶,心理脆弱。緊緊扣住這些特質,流水化作業。
  • "兒臣" 的帳單與 "額娘" 的神回復火了 !
    只是深知"父母之愛子,則為之計深遠",你的起點是父母懷抱,你的未來是修齊治平,弘毅致遠。所以額娘才狠心讓你歷練,吾兒可知"有多殘忍有多愛"。當然,吾兒自立並非始於今年今日,是家風使然。額娘一介弱女,尚能十九歲離家三千裡獨自求學,深信吾兒勝之。
  • TISC 2020 CTF 題目分析及writeups
    The file is hosted at http://fqybysahpvift1nqtwywevlr7n50zdzp.ctf.sg:31080/325528f1f0a95ebbcdd78180e35e2699.zip .Flag?
  • 戰"疫"響了,情感深了!
    2020,註定是多事之秋,註定是不平凡的一年,因為新年的第一天給大家特殊的拜年方式"居家拜年"。作為一名普通的老師我聽從安排,作為一名黨員我絕對服從命令聽指揮。 形式越來越緊,學校要求上報的數據越來越多,越來越細,所以每天都要在班級群裡發不同的通知,分享不同的文件精神,不停地催促家長朋友回覆信息,填寫表格……有時感覺家長也挺累的但是沒有辦法,特殊時期不能掉鏈子。
  • 網絡"遊戲"的泛濫,你孩子的人生是否被偷換了概念?
    人類的生命本質是公平的,但是這種本質的公平已經被"經濟"所打破。這"經濟"當然不僅僅指的是金錢和物質,它當然包含一種無形的、也是比金錢更具威力的"經濟"~那就是"名"。所謂的"名",當然是指那些出了名的人名,統一稱呼為"名人"。名人當然也就不同於一般的人名,他們具備一呼百應的能力。特別是在當下的網絡時代,這名人效應尤為明顯。
  • 新高考"3+1+2"模式下,怎麼選科?
    新高考"3+1+2"模式,把哪些學科救上岸,哪些學科推下水?我認為,談不到把哪個學科"救上岸"或"推下水",改革是大勢所趨,高考也不例外。新高考模式下,對語文、數學、外語沒有什麼影響,突出了物理、歷史兩個科目,對化學科目是一個弱化。
  • I love You的真正意思不是"我愛你"!你知道嗎?
    知道"Ilove you"是什麼意思嗎?肯定會有人說:"這個啊,地球人都是知道!"我愛你"唄." 是的,我們知道這是一句告白的話,是我們表達愛的方式,它是一句放之四海皆準的宣言,既是世界最美的語言,也是情人之間表達情感最直接的語言.但是,你知道嗎,這8個字母其實是有特殊意義的.當你聽到或當你說出這句話的時候,是否知道它還有更深一層的涵義呢?
  • 自閉患兒幹預路上最重要的一項"關係"
    家有特殊孩讓許多父母總是埋頭於孩子的康復教育,心裡唯一的盼望就是希望孩子可以早日恢復成"正常"的樣子,每天有不同的幹預課程,天天在機構與家裡間不斷的來回波奔。在忙碌中甚至無法關注與特殊孩子間的親子關係。可是,特殊孩子與父母之間的親子關係難道不重要嗎?當然不是。
  • 遠離心理疾病,就要大膽的和這類人說"不"
    "習得性無助"是心理學裡一個著名的心理現象,它是由美國著名的心理學家塞利格曼發現的。要了解什麼是「習得性無助」,首先得從他做的一項經典的實驗說起:一隻狗被他關在籠子裡,蜂音器一響後,狗就被施於令其痛苦的電擊。
  • 防疫情宅家,延期開學,你這樣管教"神獸"也許是上策!
    更有甚者,還要面對一個撓頭事,那就是對"神獸"管理教育問題!",不少朋友調侃自家"神獸"作呀,打遊戲上網熬夜,早上不起床,上網課隔靴撓癢不頂事!大人天天手機不離手,幾天不洗漱,床鋪亂糟糟,"神獸"會暗自竊喜:彼此彼此!家長要克服這些問題,做個愛看書學習、愛生活愛乾淨的"上進生",裝樣子也要象。
  • 「I love You」的真正意思其實不是 "我愛你"
    肯定會有人說:"這個啊,地球人都是知道!"我愛你"唄是的,我們知道這是一句告白的話,是我們表達愛的方式,它是一句放之四海皆準的宣言,既是世界最美的語言,也是情人之間表達情感最直接的語言. 但是,你知道嗎,這8個字母其實是有特殊意義的.當你聽到或當你說出這句話的時候,是否知道它還有更深一層的涵義呢?
  • 兩歲半寶寶和她的動物"牧場",二十多隻動物友好相處
    最近幾天,又玩上了動物"牧場"的小遊戲,常常把我們逗的哈哈大笑。",都特別忙,她要讓動物們排好隊,還要給它們分配食物,忙起來叫她也聽不到,喊她也喊不走。看"牧場"裡的動物們排著整整齊齊的隊伍在吃飯呢,看起來聽話的很。
  • 【簡訊】吉林省大安市兩家一中舉辦"我的研——學之旅"​校本主題研修匯報交流活動
    為了總結和反思年初以來的研學工作,也為了樹立典型,讓研修教師進行對比參照,9月17日,我校開展了"我的研——學之旅匯報交流活動"。    其中李天彤老師詳細闡述了自己學習課標對主題研修的促動,他從課標的實施建議中學到"體育課要充分考慮學生的運動興趣和需求,內容的選擇和設計要以學生喜聞樂見的運動項目為重點。
  • 從心理學上看程璐思文離婚:兩個"好人"是很難維繫婚姻的
    這個回應問題的視頻我看了好幾遍,可以說通篇都是"乾貨"。兩人思路清晰,真誠而又直率地做了各自的回答。與其說他們是在給觀眾做交待。更像是再次給自己的婚姻做總結。倆人都是脫口秀演員,在節目中慣性職業素養使然"輕鬆"的開聊。但卻無法掩飾她們對分開的傷感和遺憾。