原创 【pwn】oooorder

端午節看了dasctf的一個pwn題,學了一個新的姿勢。 例行檢查 分析程序 這是個堆的菜單題,並且用了seccomp進行保護,禁用了execve。這時候一般想法是orw直接將flag寫出來。但是堆的題禁用了這個還是比較麻煩的,

原创 【Pwn】2019安洵杯線上賽 fmt32 && fmt64

出題人好像比較喜歡blind pwn,5道pwn題裏有3個,由於時間關係來不及看rop64了(我太菜)。 1.fmt32 只給了ip&port,沒有附件猜測是blind pwn,根據題目名字,猜想有格式化字符串漏洞,試了一下發現是

原创 【Re】 HomuraVM

南郵Homura師傅出的一個虛擬機的題目。 比較關鍵的函數。 這裏根據程序內部的指令序列,進行dispatch,每個字符對應一個代碼片段,這邊我是看彙編分析的,將每個片段的功能分析了一下,把反調試patch後,稍微動態調一下,還是

原创 【Pwn】NCTF2019 easy_rop

查看程序保護。 分析程序,程序只有一個main函數。 v6距離rbp爲0x70,在輸入數字的時候可以輸34 * 4個字節的數,34*4-0x70=24,意味着可以溢出覆蓋rbp,ret_address,以及返回地址下面的8個字節

原创 【Pwn】2019安洵杯線上賽 Heap

一道常規的pwn題,查看程序保護。 保護全開。分析程序發現bannar函數有格式化字符串漏洞,可以用來泄露代碼段基址以及Libcdi地址,edit函數有一字節溢出,可以修改next chunk的size,且chunk指針存儲在b

原创 格式化字符串總結

0x00 原理 通過控制格式化字符串,可以進行任意地址讀和任意地址寫。 0x01 任意地址讀 先測試需要泄露的地址在棧上的位置,假設位置是??。 任意地址讀可將格式化字符串控制爲:p64(泄露地址)+"%??$s" 0x02 任意

原创 【pwn】SWPUCTF_2019_p1KkHeap

libc-2.27.so下的一道tcache堆題。 例行檢查 保護全開。 分析程序,在進入菜單之前,有一個函數跟入查看。 注意到這邊用mmap函數在0x66660000映射了一塊大小爲0x1000的內存空間,權限是rwx。然後

原创 jjencode&&aaencode類似js編碼原理探究

一.探究背景 以前在一次做ctf的時候,發現了類似如下的神奇編碼。 ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚)

原创 【pwn】gwctf_2019_easy_pwn

例行檢查 分析程序,這個程序是c++寫的。在往s中read的時候大小沒有問題,但是程序在下面將字符"I"替換成了"pretty",最後在strcpy的時候發生了溢出,沒有PIE和canary直接利用即可。 from pwn imp

原创 Pwn題中修改程序連接庫的方法

做Pwn的時候有時候會遇到題目的環境和本地環境不一致的情況。如果要裝和遠程環境相同的虛擬機就會比較麻煩,下面可以通過修改binary動態連接庫的方法,強行讓程序鏈接到與遠程環境相同的庫上。 1.首先下載好和遠程環境相同的動態庫,如

原创 【pwn】 3dsctf2016_get_started

例行檢查 file一下,發現是靜態連接的,還沒有Pie。 分析程序發現是簡單棧溢出,還有一個get_flag函數?於是直接返回到get_flag函數執行,但是遠程沒有打通,然後試了下本地可以打通,然後猜測可能是遠程環境部署錯了,沒

原创 【pwn】 0ctf_2017_babyheap

例行檢查 保護全開。 分析程序。在fill函數中存在溢出,通overlap,泄露libc。然後fastbin attack。 from pwn import * io=remote('node3.buuoj.cn',27627)

原创 【re】 watevrCTF2019_Repyc

這題給了個pyc。先用uncompyle反編譯成py。 uncompyle6 3nohtyp.pyc >>sss.py 打開,然後驚了。 # uncompyle6 version 3.6.0 # Python bytecode

原创 【pwn】 [極客大挑戰 2019]Not Bad

例行檢查 開了沙箱 程序邏輯很簡單,存在0x18字節溢出,看是否能進行棧遷移,目前可控輸入只有buf,但是buf只有0x20大小不夠rop,所以嘗試別的方法。程序在最開始mmap了一塊內存,可寫可執行,那麼接下來目標就是1.在

原创 【Pwn】SWPUCTF_2019_login

例行查看程序保護。 分析程序,最裏面函數存在格式化字符串漏洞。但是格式化字符串不再棧上,而在bss段上,沒辦法直接任意地址讀寫,於是動態調試觀察棧上數據。 觀察到fff65158指向fff65168,fff65168指向fff6