鬥技場不是潘德倫學派開的。
那是另一個公會的地盤,規矩完全不一樣。學派的東西總是冷的、安靜的、不解釋的;鬥技場是亮的,吵的,而且歡迎你把事情搞得很大聲。
O1 第一次走進去的時候,被那個聲音嚇了一下。
場子中央立著十幾座塔,高矮不一,每一座前面都圍著人。看台在上面一圈,坐滿了人。有人在喝東西,有人在指指點點,有人為某個他看不見的動作拍手。
而在整個場子最顯眼的那面牆上,掛著一塊計分板。
計分板上是一長串編號和名字,按名次排下來。每當有人攻下一座塔,那一行就會亮一下,然後往上跳。
還有一種亮法不一樣。
那天他站在那裡的時候,場子忽然安靜了半秒,然後整個炸開。計分板最上面浮出一行金色的字,唱名的人喊了一個名字——有人拿下了一座新開的塔的第一滴血。
那個人站在塔底下,沒有做什麼特別的動作,就只是把手從門上放下來。
看台上有人站起來喊他的名字。
O1 站在人群後面,看了很久。
第一天他什麼都沒打。他就只是看。
第二天他選了一座塔。
門口的牌子上寫著「易」。他後來才知道,那塊牌子是學派掛的,而看台上的人給的評價是「中」——鬥技場有個不成文的規矩,打過的人可以留下自己的評語,而這座塔底下的評語跟牌子差了一整級。
他那時候不懂看評語。他只看牌子。
他打了七天。
七天裡他做的事大部分是重複的:勘、抄、試、失敗、回到第一行重看一遍。有兩個晚上他坐到凌晨還是原地踏步,有一次他在同一個地方繞了三個小時,最後發現那個方向從一開始就是錯的。
第四天他想過放棄。他甚至已經在冊子上寫了「這台先放著」,寫完又劃掉。
第七天晚上,門開了。
他直起身,拍了拍膝蓋上的灰,然後抬頭看了一眼計分板。
他的編號動了一格。
那一格很小。整塊板子那麼大,他那一行往上挪了一個位置,大概沒有任何人注意到。
七天換一格。
O1 站在那裡看了大概十秒鐘,然後他發現自己在笑。
他後來想起這一刻的時候,會覺得自己當時應該要更警覺一點。因為那十秒鐘裡他感覺到的東西,比門打開的時候還強烈——
七年來第一次,有一個東西記錄了他做的事。
而且是當場的、公開的、掛在整個場子最顯眼的地方。沒有人需要批准,沒有人需要「看過」他,沒有人可以把它劃掉。他做了,板子就動了。
就這麼簡單。
那個月他一共打下三座塔。
以鬥技場的標準,這個數字非常難看。看台上隨便一個人一個月都不只這些。
但他不在意,因為板子每個月都會動。動得很慢,可是它會動。
後來他發現了一件事。
鬥技場的分數不是均等的。還在場子裡、沒有人寫過攻略的新塔,分數給得特別高。 打過的人越少,那座塔越值錢。
O1 開始專挑那種打。
他跟自己說的理由是「那種比較練功」,這句話其實也不算錯。但他心裡清楚,他真正在追的是那個數字——那種塔一座抵三座。
那陣子他熬得很兇。他的規矩還是至少一小時,但那條線早就形同虛設了;他大多待到午夜,有幾次天都亮了。
有一座塔,是開放當天他就拿下來的。
那天他從場子開門一直打到深夜,門開的時候他整個人是抖的。那是他離「第一滴血」最近的一次。
他很得意,得意到後來忍不住去查了紀錄。
那座塔的第一滴血,是一個他沒聽過的編號拿走的。從那個人進場到門開,不到一個小時。
O1 對著那行紀錄看了很久。
他那天打了十幾個小時。對方一個小時不到。
他坐在回去的路上,第一次冒出一個很不舒服的念頭:他到底是在變強,還是只是在把時間換成分數?
那個念頭只冒出來了一下,然後他就把它壓下去了。
因為隔天場子又開了新塔。
後來有一段時間,他打得比以前快很多。
門一開,把憑證抄下來,交上去,看一眼板子,換下一座。
他那陣子動得很順。
冊子沒有跟著厚。
他當時沒有把這兩件事放在一起看。
這一篇談 HTB——以及一個所有靶機平台共有的陷阱。
網路上常說 HTB 偏 CTF、OffSec 比較「像真的機器」。
以我實際打下來的經驗,這個區分沒有那麼乾淨。 兩邊都有那種你得靠通靈才過得去的機器——某個沒有道理的路徑、某個要你剛好想到的聯想。差別沒有大家講的那麼大。
真正的差別在別的地方:
| HTB | OffSec(PG / 課程 Labs) | |
|---|---|---|
| 社群 | 極強。評語、論壇、Discord、大量 writeup | 相對安靜 |
| 回饋 | 排行榜、積分、初血 | 幾乎沒有 |
| 取用方式 | 訂閱制,隨時打 | 有時數/期程限制 |
還有一個很多人沒注意的東西:HTB 的難度標註和使用者評價常常對不上。
一座標「Easy」的機器,底下的使用者評價可能落在中等。打之前先看評價,不要只看標註——這件事可以幫你省下很多不必要的自我懷疑。(我第一台就是這樣,牌子寫易,評價是中,而我打了七天。)
常見的建議是備考期以 OffSec 的機器為主、HTB 為輔,大約三七開。這個建議有道理,因為考試的路數比較接近前者。
但我實際是反過來的:HTB 八成、OffSec 兩成。
原因很現實:OffSec 的實驗室有時數與期程限制,HTB 可以一直打。 我需要的是大量的手感,而手感需要的是「隨時可以打」。
所以這件事沒有標準答案,取決於你缺什麼:
越接近考試日,越該往後者移動。
新手最常見的兩種極端都不對:完全不看(卡死三天,效率極低),或一卡住就看(等於在看電影)。
我沒有明訂過停損時間,但大概抓兩小時。 老實說,有時候一個半小時就去看提示了——真的完全沒有頭緒的時候,硬撐下去只是在消耗意志力。
比較實用的做法:
第 2 步是關鍵。看懂和做得出來之間的距離,遠比你以為的大。沒有重打一次的 writeup,等於沒看。
這是比較想講的一段,而且跟一般的說法不太一樣。
常見的批評是「排行榜會讓人挑簡單的機器刷」。但實際的機制往往相反:還在線上、沒有公開攻略的機器,分數給得最高。所以追分數的人反而會去打最難的那些。
所以陷阱不在你打哪一台,在你打它的時候在想什麼。
同一台機器,兩種打法:
| 為分數打 | 為技術打 | |
|---|---|---|
| 門開之後 | 抄下憑證,交差,下一台 | 留下來 |
| 會不會回頭 | 不會 | 會問「還有沒有別條路」 |
| 筆記 | 一行結果 | 整條路徑、失敗的分支、學到的那一件事 |
| 板子 | 動得快 | 動得慢 |
| 冊子 | 不會厚 | 會厚 |
同一台機器,你會從裡面帶走完全不同的東西。
我自己就是這樣走過來的:一開始看到分數上升,成就感非常強,就死命地打。後來改成為了練技術而打,真的有差——差別不在打了幾台,在每一台留下了什麼。
三個比較誠實的指標:
| 指標 | 怎麼量 |
|---|---|
| checklist 的成長 | 這台機器讓你的清單多了幾行?一行都沒多,可能只是把會的又做了一次 |
| 卡關時間的變化 | 同一類型的問題,這次卡多久?上次卡多久? |
| 重打的能力 | 一週後把同一台重置,還打得下來嗎? |
第一個最好用。故事裡那個「動得很順,冊子沒有跟著厚」,就是這個指標在報警。
我沒拿過初血。最接近的一次,是一座塔開放當天我就打下來了——從早打到深夜,十幾個小時。
後來我去查紀錄,第一滴血的那個人不到一個小時。
那個落差對我衝擊蠻大的。但後來想通了兩件事:
看台只為第一名鼓掌。但板子上跳的那一格,才是你的。
我就是那種人,所以這一節是自己講給自己聽的。
那個衝動本身不是壞事。它會讓你在很累的晚上還是坐下來,而那是這條路上最稀缺的東西。
但要替它裝一個煞車:
掌聲會讓你以為你在變強。
有時候你只是變得比較會被看見。