看到這標題你一定會想說「我學資安幹嘛一定要會python?」
但事實上,Python 在資安的角色很重要:
pwntools
幾乎是標準工具所以,我們就從最基礎的 Python 開始學,邊學邊看它怎麼應用在資安裡!
print()
Python 是一個直觀的語言,最簡單的程式就長這樣:
print("Hello, Security!")
輸出結果:
Hello, Security!
這就是 Python 的第一步。
你可以用 print()
把你想看到的內容印出來,檢查程式有沒有照你想的跑。
在資安題目中,常常要處理字串,例如轉大小寫、拼接、拆分。
name = "hacker"
print(name.upper()) # 轉成大寫
print(name + "123") # 字串拼接
輸出:
HACKER
hacker123
另一個很常見的:把字串合併 → join()
parts = ["pico", "CTF", "2025"]
print("_".join(parts)) # 用底線連接
輸出:
pico_CTF_2025
很多密碼學或 forensics 題目都會給你一堆亂碼,其實是 bytes。
在 Python 裡,我們可以這樣操作:
s = "flag"
b = s.encode() # 字串轉 bytes
print(b)
s2 = b.decode() # bytes 轉回字串
print(s2)
輸出:
b'flag'
flag
這個 .encode()
和 .decode()
幾乎每一場 CTF 都會用到。
想像一下,如果你要爆破一個密碼,就會需要迴圈。
for i in range(5):
print("Try", i)
輸出:
Try 0
Try 1
Try 2
Try 3
Try 4
判斷式也很直覺:
x = 10
if x > 5:
print("x 比 5 大")
else:
print("x 不大於 5")
Python 有很多內建的模組能幫你省時間。
import base64
s = "hello"
encoded = base64.b64encode(s.encode()) #編碼
print(encoded)
decoded = base64.b64decode(encoded).decode() #解碼
print(decoded)
輸出:
b'aGVsbG8='
hello
import hashlib
s = "password"
h = hashlib.sha256(s.encode()).hexdigest()
print(h)
輸出:
5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8
pwntools
打CTF必學的套件 —— pwntools
from pwn import *
# 連線到遠端伺服器
p = remote("example.com", 1337)
# 傳送資料
p.sendline(b"hello")
# 接收資料
print(p.recvline())
這就是很多 pwn 題目的標準開頭。
今天就先介紹這些吧!一下子學會全部python語法當然是不可能的啦
大家可以解一下以下picoCTF的題目,熟悉一下python語法~不懂的語法上網查應該都有仔細的介紹!
題單 (都在picoCTF)
以上就是今天的內容啦~明天會進入密碼學的內容 ! General Skills其他沒介紹到的題目也可以試著解解看ㄛ~
想看更多,記得明天再來喔~