Slide 1

Slide 1 text

封包攻防實戰篇 Yun Chen

Slide 2

Slide 2 text

Who am I? Chen - Yun Chen (陳允禎) 資⼯工三⼄乙 NISRA 核⼼心幹部 Slide-Now Web 前端⼯工程師 實習⽣生 ⺫⽬目前以編寫Python與JavaScript(node.js)為主 [email protected] http://about.me/chenyunchen

Slide 3

Slide 3 text

封包到底做了什麼? 快速Review 不少攻擊⼿手法都脫不了關係

Slide 4

Slide 4 text

SYN封包 (嗨! 服務可以⽤用嗎?) SYN‧ACK封包 (對! 歡迎~)

Slide 5

Slide 5 text

SYN封包 (嗨! 服務可以⽤用嗎?) SYN‧ACK封包 (對! 歡迎~) 如果TCP做⼀一半? . . . 等⼀一下好了 ???

Slide 6

Slide 6 text

SYN封包 (嗨! 服務可以⽤用嗎?) ⼀一直發⼀一直發⼀一直發⼀一直發 等⼀一下好了 等⼀一下好了 等⼀一下好了 等⼀一下好了 等⼀一下好了 等⼀一下好了 等⼀一下好了 等⼀一下好了 等⼀一下好了 SYN封包 (嗨! 服務可以⽤用嗎?) SYN封包 (嗨! 服務可以⽤用嗎?) SYN封包 (嗨! 服務可以⽤用嗎?) SYN封包 (嗨! 服務可以⽤用嗎?) SYN封包 (嗨! 服務可以⽤用嗎?) SYN封包 (嗨! 服務可以⽤用嗎?)

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

SYN封包 (嗨! 服務可以⽤用嗎?) SYN‧ACK封包 (對! 歡迎~) ACK封包 (我要查AXO.pdf資料) ACK封包 (AXO.pdf)

Slide 9

Slide 9 text

SYN SYN‧ACK ACK封包 (我要查AXO.pdf資料) ACK封包 (AXO.pdf) 稍後⽰示意圖以傳輸的資料為主

Slide 10

Slide 10 text

本次課程需事先準備 Firefox及其附加元件: Cookies Manager+ FoxyProxy Standard HackBar Burp Suite OSX版需另安裝XQuartz

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Now … Let’s begin… http://beef.nisra.net:8000

Slide 13

Slide 13 text

Level 1 FoxyProxy Standard + Burpsuite

Slide 14

Slide 14 text

全國⼤大專院校戲劇短⽚片⽐比賽 案例1:

Slide 15

Slide 15 text

封包 (我是XXX要投給id:1) 封包 (XXX沒投票過 ok)

Slide 16

Slide 16 text

網站對於已登⼊入的使⽤用者 僅使⽤用該登⼊入者姓名判斷是否投過票 瘋狂發送修改過姓名的封包 開發者應該要在後端確認是否為該⽤用⼾戶 每次投票也應該與資料庫⽐比對該⽤用⼾戶是否存在 * 此競賽並無獎⾦金 僅頭銜 … 隨便⼼心態? 灌票Work!

Slide 17

Slide 17 text

改喵星⼈人id(改照⽚片順序)?

Slide 18

Slide 18 text

照⽚片會換怎麼辦?

Slide 19

Slide 19 text

加⼊入會員? 信箱?

Slide 20

Slide 20 text

⾃自動化 + 程式處理?

Slide 21

Slide 21 text

CAPTCHA ?

Slide 22

Slide 22 text

知道有問題 核票都⼈人⼯工!? 愛⾃自⼰己不如愛你的敵⼈人XD

Slide 23

Slide 23 text

Level 2 No Hint

Slide 24

Slide 24 text

雄獅攝影⾵風俗⺠民情⽐比賽 案例2:

Slide 25

Slide 25 text

第三⽅方登⼊入 將⽤用⼾戶資料存⼊入Cookies 確認授權 取得⽤用⼾戶資料 我要投給id:1 這是我的Cookies Cookies的資料沒投過 kook

Slide 26

Slide 26 text

網站對於Facebook的使⽤用者 僅將登⼊入資訊存於cookies並對fb_id做判斷 瘋狂發送修改過cookies 對灌票者來說Facebook登⼊入⼀一直很頭痛 然後此網站卻將登⼊入資料丟回前端 並以cookies做檢查 有點多此⼀一舉的感覺 灌票Work! * 猜測開發者應該還不會Oauth2授權認證...

Slide 27

Slide 27 text

切記! ⾦金錢相關不要動! 灌票、遊戲玩玩⾃自嗨就好 出事⼀一點也不好笑

Slide 28

Slide 28 text

Level 3 No Hint

Slide 29

Slide 29 text

封包 (我要玩編號id:1的任務) 封包 (這是你和怪物的隊伍資料) (另外這是這次玩掉落的道具) 封包 (我消滅Boss 過關了) 封包 (資料符合獎勵放到帳號了)

Slide 30

Slide 30 text

Level 4 兩個Hash加密 32碼:最後有兩個== Hash 改完記得等級也要改才打得贏... 送出格式 “hash”: “decode1:decode2”

Slide 31

Slide 31 text

封包 (我要玩編號id:1的任務) 封包 (這是你和怪物的隊伍資料) (另外這是這次玩掉落的道具) 封包 (我消滅Boss 過關了) 封包 (資料符合獎勵放到帳號了) Server Hash Client Hash

Slide 32

Slide 32 text

Level 5 Use all you learn and challenge!

Slide 33

Slide 33 text

逆向⼯工程 反組譯apk檔 分析原始碼取得GetHash

Slide 34

Slide 34 text

少林-神魔之搭脫機戰⾾鬥 http://goo.gl/UCJMrR

Slide 35

Slide 35 text

有注意發送的資料格式嗎?

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

網路發送資料的格式 今天你只能發送⼀一個變數資料到網路上...多個會讓你 的服務變很慢~~就沒⼈人想⽤用了 C 表⽰示 我可以⽤用 struct{ string name; int id; } Java 表⽰示 我可以⽤用 class{ string name; int id; } 其它語⾔言 Dictionary List…etc 沒有共同資料格式 只好打⼀一架來決定⽤用哪種

Slide 38

Slide 38 text

JSON / XML

Slide 39

Slide 39 text

怪物資料 monster.json http://goo.gl/CnGHlv *⼩小弟造⼝口業太兇 流出去可能會被學⻑⾧長宰了XD

Slide 40

Slide 40 text

Q & A