原创 已知libc地址爆破TLS、ld.so等地址

已知libc地址爆破TLS、ld.so等地址 在大多數情況下,遠程的ld.so以及TLS等結構的地址與libc地址之間的偏移與本地的會不一樣,但是大致處於一個範圍內,並且,在同一個系統裏,這個差值是固定的,其差值的變化往往在偏移的第1.5

原创 ACTF_2019_ACTFNOTE(top chunk上移)

ACTF_2019_ACTFNOTE 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,edit裏存在溢出,可以直接修改top chunk的size 那麼只需要把top chunk的size修改爲-1,然後malloc(負數)

原创 iz_heap_lv1

iz_heap_lv1 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,delete功能裏存在數組下標越界,可以free掉第21個堆指針,而第21個位置對應name的空間 因此,我們可以在name裏僞造一個chunk,fr

原创 free_spirit(在棧上爆破一個可以被free的fake_chunk)

free_spirit(在棧上爆破一個可以被free的fake_chunk) 首先檢查一下程序的保護機制 然後,我們用IDA分析一下,功能3存在8字節溢出,將會把v7下面的buf指針覆蓋掉,而覆蓋了buf指針,就能實現任意地址寫。  

原创 pwnable_dragon(整數溢出+UAF)

pwnable_dragon(整數溢出+UAF) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,遊戲結束後釋放掉了ptr 也就是釋放掉了v5,而當我們打贏遊戲的時候,又malloc(0x10)並輸入,然後又調用了v5裏面的

原创 pwnable_applestore(unlink+局部變量生命週期外引用的漏洞)

pwnable_applestore(unlink+局部變量生命週期外引用的漏洞) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,在checkout函數中,如果v1=7174,則把這個函數裏的臨時節點鏈接到了鏈表當中,這就存

原创 de1ctf_2019_unprintable(_dl_fini的l_addr劫持妙用)

de1ctf_2019_unprintable(_dl_fini的l_addr劫持妙用) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,存在一個非棧上的格式化字符串漏洞,但是關閉了文件描述符1,導致不能輸出,並且printf

原创 d3ctf_2019_ezfile(文件流fileno的巧妙利用)

d3ctf_2019_ezfile(文件流fileno的巧妙利用) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,delete功能存在UAF 程序裏使用的是write輸出,因此劫持IO_2_1_stdout泄露不了數據。

原创 IEE754 shellcode

IEE754 shellcode fixedpoint_plaid_2016的一題,留着備用https://github.com/ispoleet/ctf-writeups/tree/master/plaid_ctf_2016/fixed

原创 whctf2017_note_sys(多線程條件競爭漏洞)

whctf2017_note_sys(多線程條件競爭漏洞) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,delete功能另啓了一個線程 函數裏休眠了2s,在休眠之前,end_ptr減去了8 在add函數裏,取end_p

原创 RCTF2020_nowrite(libc_start_main的妙用+盲注)

RCTF2020_nowrite(libc_start_main的妙用+盲注) 首先,檢查一下程序的保護機制 檢測一下沙箱,發現僅能進行open、read、exit操作,write操作都不行。 然後,我們用IDA分析一下,是一個及其簡

原创 jarvisoj_guess(下標越界導致盲注)

jarvisoj_guess(下標越界導致盲注) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,轉換的時候沒有檢查flag_hex[2*i]和flag_hex[2*i+1]的值是否向上越界,如果向上越界,我們可以令flag_

原创 whctf2017_stackoverflow(glibc任意地址寫一個0字節漏洞利用)

whctf2017_stackoverflow(glibc任意地址寫一個0字節漏洞利用) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下 輸入name的功能可以用於地址泄露 在主功能裏,存在一個glibc任意地址寫入一個0字

原创 [ZJCTF 2019]Mesage(地址值強制當成指令)

[ZJCTF 2019]Mesage(地址值強制當成指令) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,在edit功能裏沒有檢查index,可以溢出,在任意地址處寫一個堆地址。 那麼,我們就可以把堆地址寫到已存在的堆裏,

原创 qwb2019_one(strchr的誤用)

qwb2019_one(strchr的誤用) 首先,檢查一下程序的保護機制 然後,我們用IDA分析一下,test功能裏abs函數存在溢出,由此可以造成下標越界,進而可以泄露程序的地址。 在edit功能裏,strchr可以返回字符串結尾