IThome 2024 鐵人賽 一直刷 CTF - Day9
前言
本日進度:
Writeup
第一題:Serpentine
看到他 python code 裡面有個函數叫做 print_flag()
,我就把它移動到 if __name__ == '__main__':
下面,然後執行就得到 Flag 了

第二題:PW Crack 5
因為懶得改太多程式,想說創一個通道讓 dictionary.txt
的資料自己一個個拿去測試,就是 cat dictionary.txt|python level5.py
,但原本的 level.py
只會執行一次,所以我就把其中的 level_5_pw_check()
改成以下這樣,就得到
Flag 了
1 | def level_5_pw_check(): |

第三題:PW Crack 4
跟上一題很像,但這個比較好心把可能的密碼些在陣列裡面,所以我就直接改成以下這樣,就得到 Flag 了
1 | def level_4_pw_check(user_pw): |

第四題:PW Crack 3
這題跟前一題一樣是把答案寫在陣列裡面,但他只有七個,所以可以一個個慢慢試,就得到 Flag 了 (結果我就真的試了七次才猜倒也是很不容易 xddddd)

第五題:1_wanna_b3_a_r0ck5tar
這題很神奇,他是用一個 Rockstar 的程式語言寫的,懶得看文件先隨便先猜了一下,裡面有 IF 和 Else,我就先試試看把他們刪掉,變成以下這樣執行,隨便亂輸入,就得到幾個數字,把他轉換成 ASCII 就得到 Flag 了~
1 | Rocknroll is right |

後來去看別人 writeup 又去看了一下他的文件發現他是拿文字長度當每一位數字,題目本來應該是要我們去看懂他程式然後輸入進去啦,不過反正能拿到 Flag 都是好方法🫠
第六題:flag_shop
這題我蠻喜歡的,他用 nc
連到伺服器,然後要到他的商店裏面買 Flag,但是 Flag
的價錢遠超過自己的資產。不過還好她有提供 source code
可以參考,看了之後發現他有擋掉買負數的 Flag,但是但是,他沒有擋掉
total_price
是負數,可能一般人會想說 Flag 數量是正的,那
total_price = 900 * number_flags
也是正的,但是打過競程的一定都知道 overflow ,只要把 Flag 數量設成
(2^31/900, 2^31-1] ,就可以得到負數的 total_price
了,藉由買負數價錢的東西,就可以增加自己的資產然後買 Flag 了~
