跳到主要內容
← All posts心得分享

我怎麼從改遊戲地圖走到修學校的漏洞

storycareer

我叫small R,現在 18 歲,目前就讀五專資工三年級。


起點:一台修好的二手電腦

家裡沒有人做資訊相關工作。我沒有補習班,也沒有可以問的長輩。

國中的時候,我因為喜歡玩 Roblox,開始接觸 Roblox Studio 和 Lua。那台電腦是我自己修好的——原本壞掉,我拆開來查資料、換零件,讓它可以開機。

第一次打開 Roblox Studio 的時候,我完全看不懂。但我知道只要查得到答案,就能做出來。所以我開始查英文教學、看 YouTube、在論壇上問問題。

從最基本的地圖修改,到慢慢搞清楚什麼是函數、什麼是事件、什麼是物件。然後開始寫龐大的遊戲系統架構。

後來我開始接付費的案子,也遇到幾個世界各地的開發者,變成固定一起做遊戲的夥伴。本質上還是自由接案,只是不再一個人做,溝通全用英文。這段經歷教會了我很多——技術上的,還有「做出來不等於有人要」這個更重要的教訓。


五專:一個不被看見的人

坦白說,五專的課程大多數都讓我學不到什麼。許多作業用 AI 幾分鐘就解決了,課堂討論的深度也有限。

學校的門檻太低,我從一開始就感受不到任何挑戰。讀書對我來說漸漸失去意義,成績也隨之開始崩壞。我選擇不去上課,不再維持那個「認真學生」的樣子,把時間投入我覺得有意義的事——自學、做專案、搞清楚資安是怎麼一回事。

我的成績很難看。

沒有人知道我在追求什麼,包括我自己還沒完全想清楚。我的路很不標準——沒有補習班,沒有家人指引,沒有清楚的升學路線。在一個習慣用出缺勤和成績衡量學生的體制裡,我很難被理解,也不可能被推崇。那時候的我,只是一個成績差、常常不來的學生。

有一段時間,班導讓我用兩節課向全班講解程式內容。我講得不算好,但站在台上那一刻,我突然理解了「教學的困難」——你必須真正理解某件事,才能把它說清楚。那是那幾年裡,少數讓我感覺還存在於這個教室的時刻。


2025:開始去找自己要什麼

學校給不了的,我去別的地方找。

網頁設計課的老師是另一個轉折點。他教的不只是語法——他分享自己在外商工作的經驗、怎麼寫履歷、怎麼在 LinkedIn 上被看見、怎麼思考職涯。班上後來因為程度落差,老師改成免寫程式工具;但我還是堅持用程式把每份作業做完,維持那個對自己的要求。老師後來透過班導得知我平常在做什麼,主動找我深聊。那是我第一次感受到有人真的把我當一個「未來的工程師」在說話,而不是一個成績不好的學生。

遊戲設計導論期末報告,大多數同學選擇介紹別人的遊戲。我決定展示自己正在做的東西——技能系統、打擊感邏輯、UI 設計、跟國外開發者合作的日常。我需要習慣站在人前說「我做了這個」。

那年暑假,我以開發者身分去參加 Flutter Meetup。現場最年輕的是我。我坐在那裡,聽業界的人討論他們正在做的東西。

我也開始做第一個「真正想解決問題」的專案。為了讓《BanG Dream! Ave Mujica》的粉絲能快速找到特定台詞對應的截圖,我寫了一套 OCR 字幕擷取工具,把影片逐幀轉成 JSON 資料庫,再串接 Discord Bot 讓人直接查詢。那是我第一次從「我想做」走到「真的有人用」,也是我第一次完整規劃並部署一個系統的開始。


那個不該被我找到的漏洞

某次我在分析校務系統的 HTTP 流程——這是我練習用 Burp Suite 做 Web 安全研究的練習對象。

我攔截了請求,觀察參數,試著改動看看。

然後我發現了幾個真實的安全問題。

這不是那種理論上的漏洞。是真的可以影響學生資料的問題。我知道我不能只是把它忘掉,也不能隨便跟人說。

我選擇向 HITCON ZeroDay 提交負責任揭露報告。寫完整的漏洞分析,說明影響範圍,提出修補建議。

後來,學校電算中心聯絡了我,找我進去一起做修補。


進了電算中心之後

在電算中心,我做的事情比通報那天要複雜許多。

我要做基礎設施安全評估,找出系統架構中的潛在弱點,用 Python 寫內部自動化工具讓維運流程更有效率。我也提出了 WAF 和 reverse-proxy 的強化方案——從攻擊面分析到防禦架構,把我研究的東西整理成可以落地的提案。

最後那份方案因為行政因素,被外包給廠商執行。我不在決策圈裡,也沒辦法影響那個結果。但廠商最後做的方向和我的提案高度吻合。

沒有人在正式場合說「你是對的」。事實上,電算組長一直在推動我、相信我的判斷——但他自己也受限於角色。

組長給了我很多。他不只讓我合法地修復漏洞、提供 VM 讓我可以研究,也帶我理解制度背後的複雜——IT 人員看到的問題和非 IT 人員看到的,往往是兩個截然不同的世界。他跟我說了很多只有在那個位置才看得到的事情,也讓我認識了很多認真工作的大人,那是我以前沒有管道接觸到的世界。

學校給了我兩隻小功。

通報之後,ZeroDay 上陸續也出現我們學校其他的漏洞。那時我才意識到,揭露這件事的影響不會停在我跟系統之間——它會擴散出去,變成別人要處理的事。這讓我決定不能只停在「找到洞」,而是要更完整地去理解系統本身,才有辦法真的幫上忙。

在這個過程中,我意外發現了一個後門,把它修補起來了。讀更多代碼之後,我看到了一些非常古老的架構——那種你完全想不到還在跑的東西。我用自己的思路去解決了其中的一些 XSS 問題。

規模不大,但那是我自己想出來的解法,是我實際修掉的洞。

也是這段時間,我親眼見過我們學校和另一間學校之間真實的攻防——不是練習環境,是真的有人打進來,也有人在擋。

另一個現實是:因為制度上的限制和我的身份,有很多問題我沒有辦法完全解決。你能看到問題,不代表你有權限去動它;你知道架構有弱點,不代表組織準備好讓你修。


Agora-AI 的由來

分析校務系統的那陣子,我一直在想能不能把上面的操作自動化。

最早試的是瀏覽器模擬,把整個登入流程跑一遍。登入確實成功了,但那個網站的結構太老舊,頁面一換就抓不到東西,這條路走不下去。

後來我學會直接打 request,等於開了一扇新的門。校務系統的 API 沒有任何公開文件,但只要看懂它的請求怎麼組,就能自己接。

第一個成品是 Easy TPCU——自動登入、爬出缺勤、畫成統計圖推到 Discord 的 Python 工具。之後改成 CLI,變成我自己每天在用的東西。最後才長成 Agora-AI:一套 LLM 驅動的校園行政助理,把校務系統的 API 包成 10 個 agent 工具,讓學生可以直接問「我這週有什麼課?」、「我上個月缺了幾節?」。

FastAPI 寫後端,Next.js 做前端,SQLite 存資料,Docker 容器化,Cloudflare Tunnel 部署到學校 VM。

目前暫停中。最近我開始想的是:做成網頁這件事,到底有沒有必要。


上學期:第一次被當成答案

這幾年裡,我遇到了讓我真正感受到「資工是什麼」的老師——物件導向的陳老師。

他每一堂課都親自在台前手打程式碼,把 Stack 和 Heap、記憶體模型、Java 編譯流程(javac → bytecode → JVM)一行一行拆給我們看。我以前只在網路上見過有人這樣講解底層原理,沒想到在學校課堂也能遇到。考試是上機考,老師在旁邊看,完全沒辦法靠 AI 過關。

他給了我課堂滿分。在班上公開認可我的能力。還指派我去幫同學解題。

那是我在學校第一次被當成「答案的來源」,而不是「問題的來源」。

那段時間,我開始對演算法和底層原理真正感興趣。我很清楚自己不是那種能在限時內解掉競賽題的人——那需要大量刻意練習,而我的時間都花在把東西做出來上面。但「競賽解題」和「理解演算法」是兩件事,我後來在字幕索引上做的兩段式掃描,本質上就是一個 coarse-to-fine search,那是為了解決真實問題自己推出來的。

那種對「程式為什麼這樣運作」的好奇,是那時候種下的。這塊底子我知道自己不夠扎實。

那個學期,我拿到了全科及格——ALL PASS。入學以來第一次。


這學期:最近的一次業界

這學期讓我印象最深的,是吳老師。他的課用積木拼 APP,聽起來和我沒什麼關係。

但他知道我對軟體有熱情。

他說,他看過很多成績不好、但有「閃光點」的學生——那種在不對的環境裡找不到出口、但眼睛裡還有光的人。他跟我說:你既然有接案經驗,去找工作看看。

所以我去試了。

我投了一間台北的新創,通過了三階段面試,每一關都過了。最後在最終三選一的關卡落選。

面試本身超出了我所有的預期。創辦人親自主導,我們一起討論系統設計,我在筆記本上畫架構圖,理解公司的技術選型和商業邏輯。那是第一次有人把我當成可以認真討論系統的人——不是學生,不是實習生,是工程師。

在為期一個多月的三個階段選拔裡,很多細節我已經忘記了。

但我記得創辦人說:18 歲的我,已經超越了他 18 歲時的自己。我記得他多次強調,沒有錄取我,絕對不是因為能力的問題。

那是我離業界最近的一次。


回頭看,我的生命裡一直有一些人,在我陷進去的時候把我從泥潭裡拉起來。

陳老師、吳老師、網頁設計課的老師、班導、電算中心的組長——他們不一定是刻意的,但他們做了同一件事:在某一個時間點,看見了我,然後把我往前推了一把。

還有一些網友。從一起陷在同個坑的朋友,到技術上給我建議的前輩。他們在我最低落的時候給了鼓勵,有時候只是一句話,但那句話留得很久。

這學期我又開始拒學了。原因不是課太難,是這個環境不是我要的。身邊幾乎沒有能逼我進步的人,討論不起來;我想要的是跟比我強的人互相碰撞,而不是待在一個沒有人會反駁我的地方。

看著身邊的人對未來沒有想法,我自己也開始焦慮:總覺得自己很弱,覺得別人都走得比我快,也不知道接下來會怎樣。


如果你是因為某個漏洞回報、某個 GitHub repo、或某篇技術文章找到這裡的——

你好,我是吳宸麒。