# 哈哈哈哈 - 1.ctf概念 - 2.hackmd - 3.pwn工具介紹 - 4.pwnable(passcode) <!-- .slide: data-transition="zoom" --> --- # ctf概念 - 模擬戰爭遊戲中的<span><!-- .element: class="fragment highlight-red" -->搶旗</span>模式,今主要指一種模擬<span><!-- .element: class="fragment highlight-red" -->入侵與防禦的遊戲</span>,參賽隊伍必須以入侵、分析封包、破解密碼等各種手段獲得 flag。 - 三種類型 - <span><!-- .element: class="fragment highlight-red" -->Jeopardy</span> - <span><!-- .element: class="fragment highlight-red" -->Attack & Defense</span> - <span><!-- .element: class="fragment highlight-red" -->King of the Hill</span> <!-- .slide: data-transition="zoom" --> --- # Jeopardy - 最常見的 CTF 模式 - pwn - reverse - web - crypto - forensic - misc <!-- .slide: data-transition="zoom" --> Note:123 --- # Attack & Defense - 參賽隊伍需要維護一台上面跑著數個服務的主機,要一面找出漏洞,並進一步<span><!-- .element: class="fragment highlight-red" -->修補服務的漏洞</span>,也要一面<span><!-- .element: class="fragment highlight-red" -->寫出漏洞的利用方式</span>,對其他隊伍進行攻擊 <!-- .slide: data-transition="zoom" --> --- ![](https://i.imgur.com/whNlluY.png) <!-- .slide: data-transition="zoom" --> --- ![](https://i.imgur.com/5PibnVU.png) <!-- .slide: data-transition="zoom" --> --- # King of the Hill - 比賽差異性大,規則比較不一定 - 分數由少部分隊伍取的 <!-- .slide: data-transition="zoom" --> --- # hackmd - tag:###### - 標題大小:1-5個# - tab鍵分段落 - 6個`(三上三下包含程式內容) - 前三個後方可以輸入程式類型 - 2個`可以包含一句程式(包含在文字內) - 下載或截圖直接拉進內容 <!-- .slide: data-transition="zoom" --> --- # pwn工具介紹 <!-- .slide: data-transition="zoom" --> --- # 工具 - objdump - gdb peda <!-- .slide: data-transition="zoom" --> --- # objdump - <span><!-- .element: class="fragment highlight-red" -->靜態</span>分析工具 - 閱讀系統為<span><!-- .element: class="fragment highlight-red" -->二進制的ELF</span>檔案 - 存在於linux當中,如:計算機指令,資料等 - -d 反彙編那些應該還有指令機器碼的section(-D 反彙編所有section) - -r 顯示檔的重定位入口 - -R 顯示檔的動態重定位入口 --- # gdb peda - 動態分析工具 - 追蹤每一行組語 - install:`sudo apt install git git clone https://github.com/scwuaptx/peda.git ~/peda echo "source ~/peda/peda.py" >> ~/.gdbinit cp ~/peda/.inputrc ~/` <!-- .slide: data-transition="zoom" --> --- - vmmap - 查看目前記憶體分布 - rwx權限 - run - 執行 - 簡寫成 r - disassemble < func> - 反組譯 - 列出程式用到的所有func <!-- .slide: data-transition="zoom" --> --- - break - 設斷點 - 簡寫成b - 記憶體位置前加* - ni - 下一個指令 - 直接執行func - 簡寫成n - si - 下一個指令 - 逐步執行func中的指令 - 簡寫成s <!-- .slide: data-transition="zoom" --> --- - continue - 執行到斷點 - q - 離開 - j *<0x00000> - 跳到某個位置 <!-- .slide: data-transition="zoom" --> --- - x/[Size][Format] - 印出記憶體資料 - size - b(1byte) - h(2byte) - w(4byte) - g(8byte) - format - o octal(8進制) - x hexadecimal(16進制) - t binary - s string <!-- .slide: data-transition="zoom" --> --- # pwnable實作(passcode) - `http://pwnable.kr/` - ![](https://i.imgur.com/34aF7JB.jpg) <!-- .slide: data-transition="zoom" --> ---
{"metaMigratedAt":"2023-06-15T09:11:21.582Z","metaMigratedFrom":"YAML","title":"哈哈哈哈","breaks":true,"slideOptions":"{\"spotlight\":{\"enabled\":true}}","contributors":"[{\"id\":\"4deecc40-67bc-450d-800d-ce13befa988f\",\"add\":3527,\"del\":502}]"}
    363 views