本日進度:
用 ssh 連線,然後開始手動二分搜,找到 flag
先把檔案載下來,然後解壓縮之後發現裡面有個 txt 檔和 .git 資料夾,txt 檔的訊息講說要去看他的 commit history,所以就用 git log 看了一下,就直接看到 flag 了
按照指示登入,然後就看到 flag 了
用 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
先看看 message.txt ,他說 TOP SECRET,然後裡面也有 .git 資料夾,所以用 git log 看了一下,發現之前有一筆 commit message 寫 remove sensitive info
所以就 checkout 到那個 commit,然後再印出一次 message.txt 看到 flag 了
一樣有 .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)我也要寫一行解~ 基本上跟 Vincent 寫的一樣,但我把海象用在三元運算子上就能成功了,就沒用 lambda 了
print("\n".join(" " * (a - i) + "*" * (i * 2 - 1) for i in range(1, a + 1)) + "\n" + " " * (a - 1) + "|") if (a := int(input())) else None
繼續一行解 lol
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}"))
包含的方法
講了 get
和 post
的方法,然後就結束了~
在寫的時候發現有一點小 bug:
https://play.picoctf.org/practice
後面還會加上 ?category=5&page=1
之類的文字,但我程式在寫的時候就只有判斷到 https://play.picoctf.org/practice
,所以就改成有包含到 https://play.picoctf.org/practice
這個字串就去抓分數,就解決了~今天的題目好像有點太簡單,六題半小時不到就寫完了,寫 Writeup 的時間比解的時間還多xdd,希望之後也都能這麼順利 owo