BXS入門賽部分writeup

2022-08-14 03:42:12 字數 1683 閱讀 4583

前言:沒有聽魚哥的話,事先沒有裝好環境,於是開始沒做出來,然後全程在裝pwntools,經過一番努力,失敗了0.0

最終在網上搜了一段python socket連線指令碼,終於可以做題了(哭)。這是乙個盲打,向服務端傳送一定長度的字串,服務端就會給你最喜歡的flag.

寫下指令碼嘗試需要多長的字元才可以恰好讓服務端給我們flag,指令碼如下(由於現在服務端已經關閉,不能實時演示了,請見諒)

最終只需要如下指令碼便可以讓服務端乖乖把flag給我們

分析程式邏輯,通過關鍵**我們可以知道當(v3 == 97 , v4 ==a5y ,v5 == ar3versing ,  string == 69) 時程式輸出,其中97是ascii碼,單擊它按r可轉成字元a, 單擊a5y轉到它的定義發現它其實是字串5y,同ar3versing是字串r3versing,而string通過截圖中我們可以看到它位於v3前面。由此我們已經可以推出

拖進ida進行靜態分析,直接點進main函式,f5

不難看出加密演算法,開始我犯了乙個錯誤,我把5b134977135e7d13分成單個字元進行異或解密,得出一串亂碼,於是很方,錯誤指令碼見下圖

於是再繼續看原加密演算法,發現錯誤處

首先我們要知道sprintf這個函式的在這裡的作用是把異或的結果以16進製制存到v13中

於是修改指令碼,如下圖

執行得到flag: k3yg3nm3

檢視反編譯原始碼,找到關鍵判斷語句,發現checksn函式是關鍵函式。

找到checksn函式進行分析

經過分析我們可以知道此函式作用是取32位md5中的16單數字元組成註冊碼。

於是我們可以自己寫乙個註冊碼生成指令碼,指令碼如下

這裡輸入使用者名稱mumuzuishuai,得到註冊碼b10d7be3557a3021.

安裝register程式輸入使用者名稱和註冊碼,就會出現flag

flag:g00d_you_hvck_it

海嘯杯部分題目write up

海嘯杯web 海嘯杯misc 海嘯杯cryptography 開啟string window即可檢視 按f5檢視 開啟看到有這麼一串字元 再次點開puts裡面的引數 說明 strcmp v1,v0 的值要為1,然後strcmp函式為0的時候,裡面的v1 v0 已知v0的值是 kanlxvdztljy...

攻防世界WEB部分write up

新手入門區域 1.command execution 小寧寫了個ping功能,但沒有寫waf,x老師告訴她這是非常危險的,你知道為什麼嗎。wp 輸入127.0.0.1 ls,發現可執行後面的ls,故直接用find命令查詢 127.0.0.1 find name flag 看到 home flag.t...

2020 巔峰極客 Re部分WriteUp

分為三部分 以 為間隔,將flag的第一部分轉換為整型數字,並且滿足後項 前項分別為 0x13,0x19,0x1a,0x1c 最後一項為len flag lastpos 以 為間隔,將中間的字串分別儲存到road中 checkflag,即走四個20x.的迷宮,從s d。以第1點儲存的順序,決定迷宮的...