Leet(1337)駭客語是什麼?替換對照表、CTF Flag 產生器與 Python 範例

Leet(英文中亦稱 leetspeak 或 eleet。Leet拼寫法:L337, 3L337, 31337或1337),又稱駭客語,是指一種發源於西方國家的BBS、線上遊戲和駭客社群所使用的文字書寫方式。通常是把拉丁字母轉變成數字或是特殊符號,例如E寫成3、A寫成@等。或是將單字寫成同音的字母或數字,如to寫成2、for寫成4等等,俗稱 CTF Flag 產生器。

其實我會知道這個是因為我在出CTF題目時,為了不讓flag這麼好猜到意外看到的工具(`Д´)

今天要介紹flag產生器,其產生的語言就是leet駭客語言!

https://github.com/ss8651twtw/CTF-flag-generator

使用方法

To translate alpha characters to leet string:

./genflag.py 'this_is_your_flag'

And output maybe:

TH1S_i5_yOUr_fL@6
Added entropy: 8.75 bits

例如我打 sectools.tw_is_the_best_platform!

很有意思吧!

常見的 Leet 替換對照

字母Leet 寫法
A4、@
E3
I / L1、!
O0
S5、$
T7
G9、6
B8

用 Python 自己寫一個 Leet 轉換器

import random

LEET = {'a': '4@', 'e': '3', 'i': '1!', 'o': '0', 's': '5$', 't': '7', 'g': '9', 'b': '8'}

def to_leet(text):
    return ''.join(random.choice(LEET[c.lower()]) if c.lower() in LEET and random.random() < 0.7 else c
                   for c in text)

print('flag{' + to_leet('hello_hacker') + '}')

常見問題

把密碼改成 Leet 寫法會比較安全嗎?

幫助有限。密碼破解工具(例如 hashcat 的規則檔)早就內建 Leet 替換,P@ssw0rd 幾乎和 Password 一樣容易被猜到。想要安全的密碼,長度與隨機性才是關鍵,可以用 密碼外洩查詢與強度檢測 測試看看。

出 CTF 題目時為什麼要把 Flag 寫成 Leet?

避免參賽者直接猜出 Flag,也能防止只靠關鍵字搜尋就找到答案,讓解題過程更公平。

延伸閱讀

You may also like