Seccon-ctf-2016-pwn-cheer_msg 题解

文件信息

样本来自2016年Seccon ctf的一道pwn题–cheer_msg,同时这道题目也给了libc文件,减少了漏洞利用难度。
检查样本信息:
  32位小端程序,开启了栈溢出保护和NX保护。
check

漏洞定位

main
整个程序还是比较易懂的,主体逻辑存在于main和message两个函数。上图展示了main函数的伪C代码,要求输入一个长度,然后按照长度进行相应计算后使用alloca在栈上分配空间。这道题目比价新颖的是使用了alloca函数,该函数不同于一般的堆内存分配函数,它会将内存分配到栈中,因此该内存分配函数在实际编程中用的比较少。
message
接着,我们看一下message函数,伪C代码截图如上,第一个getnline调用将n个字节存入到a1变量所在的地址中,该变量即是main中的v7变量,这里考虑到n是我们输入的值,所以猜想这里可能存在栈溢出。然后接着往下看,第二个getnline调用将64字节存到v3中,随后打印了v3和a1内存位置的值,初步分析这里由于读取限制了长度且栈上空间足够大,所以没有明显的溢出漏洞。

<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值