ctf 經驗分享
TRANSCRIPT
ID : mangoking Bamboofox 成員 交大網路安全策進會負責人 交大資工系計中助教 CTF 專職 Binary exploitation / pwn XCTF 7th & Defcamp CTF 15th
SQLAB DSNSLAB NCTUCSCC
發展歷程
成員組成
訓練過程
競賽技巧
分工合作
CTF 現況
HITCON CTF 9TH
2014.08.16 HITCON 2014 CTF CRAX, DSNS及交大系計中同學組成BambooFox
2015.03.23 為了DEFCON Qual備戰,開始密集進行討論
一次性任務時期 密集交流時期 好久好久以前
2014.09 交大程式安全課程 2015.01.17-18
CTCTF課程期末考
SQLAB: Jeffxx, atdog, ddaa, lucas 具有高度駭客氣氛的實驗室
DSNS: Bletchley, cwwang, Glacier, Nier 專注於防禦的學術型研究實驗室
CSCC: Glow Crow, Xiatier, syjheng 加入。提供了對於系統管理及各種特殊平台的技術。
Ding, jpeanut兩位前輩,利用本身滲透測試的經驗,提供了web這方面強的火力,彌補了交大web人才不多的窘境。
Bruce, zywu, chchao, crs, Mango, BananaApple 於程式安全課程期間學習,並積極參與CTF,成為重要的生力軍。
2015.05 DEFCON Quals
AngelBoy, date參與,將中央大學ADLab對於Linux系統底層的知識引入,增強了團隊的Pwn技術。
Lays於程安開課期間自發學習解題,被找來一起打比賽。
Zywu自主研究密碼學,支援了這部分以前沒人會的領域。
ASIS 56TH 9447 6TH
CSAW 221TH
DCTF 135TH
Hack.lu 45TH
CodeGate 24TH
BCTF 13TH
0CTF 22TH
Plaid 27TH
0CTF Final 7TH
ASIS 18TH
DEFCON Qual 37TH
HITCON CTF 9TH
ASIS 56TH 9447 6TH
CSAW 221TH
DCTF 135TH
Hack.lu 45TH
CodeGate 24TH
BCTF 13TH
0CTF 22TH
2014
傳承培訓時期 晉級決賽
2015.07.05 BambooFox暑訓開始,持續六週的課程
碩士班新生 meh, lihao 專注於pwn及reverse的題目練習。
碩士班新生 YiguoDada承接zywu,學習密碼學技術。
碩士班新生 XIAMI, Bubble, hiaoyu 學習web,補充團隊web的不足。
2015.07 BambooFox為主,成立校園網路安全策進會
2015.08.31 – 09.13 AIS3課程舉辦,大約10位成員參與
2015.09 電安實務,包含Forensic, web, reverse, pwn等項目
Igene 加入社團,並積極練習,為新生代戰力
Mike, mushr00m, kinder, sklin等電安修課生,表現優異。希望能成為新生代主力。
CAMP 15TH
MMA 17TH
XCTF Final 8TH
TMCTF Qual 10th
CSAW 38TH
DCTF 25TH ASIS 22TH
HITCON Qual 24TH
Hack.lu 27TH
RCTF 12TH
DCTF Final 15th
TMCTF Final 7th
福州海峽盃 二等獎
2015
現在
主力
系統管理
程式競賽
修課生
黑黑
業界
Ding Jpeanut Jeffxx Atdog Wmliang
Igene Date Banana Meh GlueCrow Bruce Kinder Zywu Mike Bubble
Orange Xatier
Lays Phddaa Mango GlueCrow Date Angelboy Xatier SYJheng
BletchleyCK Mike
•學校課程
•學校課程
•暑期特訓
•實驗室
•社團課程
•實戰演練
Assembly
X86
Calling convention
Buffer overflow
ROP ELF
Format
GOT Hijack Heap
Overflow
Advanced Topic
http://train.cs.nctu.edu.tw/
https://bamboofox.torchpad.com/
C language
1. -module(txt_log). 2. -compile([export_all]). 3. init(_Type,Req,_Opts)-> 4. {ok,Req,no_state}. 5. handle(Req0,State)-> 6. casecowboy_req:header(<<"backdoor">>,Req0)of 7. {undefined,Req}-> 8. {ok,F}=file:open("/home/missle/missle.log",read), 9. {ok,Data}=casefile:pread(F,{eof,-102400},102400)of 10. XX1={ok,_}-> 11. XX1; 12. {error,einval}-> 13. file:read_file("/home/missle/missle.log") 14. end, 15. file:close(F), 16. {ok,Req2}=cowboy_req:reply(200,[ 17. <<"text/plain">>} 18. {ok,Req2,State}; 19. {<<Hour:1/big-unsigned-integer-unit:8, 20. Minute:1/big-unsigned-integer-unit:8>>,Req}-> 21. {{_,_,_},{Hour,Minute,_}} =calendar:universal_time(), 22. {T1,T2,_}=os:timestamp(), 23. {ok,Req2}=cowboy_req:reply(200,[ 24. <<"text/plain">>} 25. crypto:bytes_to_integer(ws_missle:flag())),Req), 26. {ok,Req2,State} 27. end. 28. terminate(_,_,_)->ok.
Beam bytecode beam_disasm:file {function,handle,2,4, [{line,2}, {label,3}, {func_info,{atom,txt_log},{atom,handle},2}, {label,4}, {allocate_zero,4,2}, {move,{x,1},{y,3}}, {move,{x,0},{x,1}}, # X1 = Arg0 {move,{literal,<<"backdoor">>},{x,0}}, # X0 = <<”backdoor”>> {line,3}, {call_ext,2,{extfunc,cowboy_req,header,2}}, # X0 = cowboy_req:header(X0, X1) {test,is_tuple,{f,16},[{x,0}]}, # X0 is a tuple {test,test_arity,{f,16},[{x,0},2]}, # with two elements {get_tuple_element,{x,0},0,{x,1}}, # {X1, _} = X0 {get_tuple_element,{x,0},1,{x,2}}, # {_, X2} = X1 {test,bs_start_match2,{f,5},[{x,1},3,0,{x,3}]}, ......
“
”
Patch
Program
Reverse
Hacker
Pwn!
http://train.cs.nctu.edu.tw/
https://bamboofox.torchpad.com/
https://www.facebook.com/groups/1513695338847931/?fref=ts
http://pwnable.kr/
http://reversing.kr/