IThome 2024 鐵人賽 一直刷 CTF - Day2
前言
本日進度:
Writeup
第一題:Binary Search
用 ssh 連線,然後開始手動二分搜,找到 flag
第二題:Time Machine
先把檔案載下來,然後解壓縮之後發現裡面有個 txt 檔和 .git 資料夾,txt 檔的訊息講說要去看他的 commit history,所以就用 git log 看了一下,就直接看到 flag 了
第三題:Super SSH
按照指示登入,然後就看到 flag 了
第四題:endianness
用 Netcat 連線,然後按照指示將字串轉換成 big endian 和 little endian,就得到 flag 了
得到的 word: ofbay
char | hex |
---|---|
o | 6f |
f | 66 |
b | 62 |
a | 61 |
y | 79 |
big endian: 6f66626179 little endian: 796162666f
第五題:Commitment Issues
先看看 message.txt ,他說 TOP SECRET,然後裡面也有 .git 資料夾,所以用 git log 看了一下,發現之前有一筆 commit message 寫 remove sensitive info
所以就 checkout 到那個 commit,然後再印出一次 message.txt 看到 flag 了
第六題:Collaborative Development
一樣有 .git 資料夾,所以就用 git log 看了一下,發現只有一筆,再回去看了一下題目說他是多人寫作的,所以看了以下有沒有其他 branch,果然,有其他另外三個,接著就把裡面的 flag.py 都拿出來看看就有答案了,然後拚在一起就是 flag 了
上課紀錄
基本語法
hex
bin
ord
chr
base64.b64encode
+
,-
,*
,/
,%
,**
,pow
print
NUM
,STR
,FLOAT
,LIST
,TUPLE
,SET
,DICT
,BOOL
if
,elif
,else
while
,for
try...except...else...finally
eval
: 會將輸入的 String 自動轉換成適當的型態,所以如果是 python 指令,就會發生可怕的事情 owo (MyFirstCTF 的 Evil Calculator)
Lab 1 - 星星樹
我也要寫一行解~基本上跟 Vincent 寫的一樣,但我把海象用在三元運算子上就能成功了,就沒用 lambda 了1
print("\n".join(" " * (a - i) + "*" * (i * 2 - 1) for i in range(1, a + 1)) + "\n" + " " * (a - 1) + "|") if (a := int(input())) else None
Lab 2 - caesar
繼續一行解 lol1
print("".join(chr((ord(i)-ord("o")+ord("b")-97+26)%26+97) if i.isalpha() else i for i in "o33s{cl7u0a_10ir_7nxvat_on7u5}"))
Requests
包含的方法
講了 get
和 post
的方法,然後就結束了~
又修了一點插件
在寫的時候發現有一點小 bug:
- 在 Practice 頁面的時候如果是有翻頁或是有點選指定哪個類別時分數不會顯示,因為在
https://play.picoctf.org/practice
後面還會加上?category=5&page=1
之類的文字,但我程式在寫的時候就只有判斷到https://play.picoctf.org/practice
,所以就改成有包含到https://play.picoctf.org/practice
這個字串就去抓分數,就解決了~ - 顯示的分數不會即時更新,也就是在我解完一個新的題目的時候分數還會是舊的,需要重新整理才會刷新,因為我程式在寫的時候是判斷如果分數已經生成就不再生成一次,所以就改成每次都去檢查有沒有生成過了,如果每有就生一個一個新的,如果沒有就去更新舊的分數,這樣就沒問題了~
小小心得
今天的題目好像有點太簡單,六題半小時不到就寫完了,寫 Writeup 的時間比解的時間還多 xdd,希望之後也都能這麼順利 owo