bof
原题有提供binary和source code。
|
|
用IDA打开,f5:
main函数:
func函数:
func函数接受一个参数(0xDEADBEEF),之后通过gets()接受输入。因此可以通过栈溢出,将a1覆盖为0xCAFEBABE,这样能直接执行 system(“/bin/sh”)
a1 是 func()的参数,在栈上位于 ebp+8h 的位置。而输入字符串的起点为 ebp-2ch。两者相差:0x2c + 0x8h = 52 。
exp
|
|
原题有提供binary和source code。
|
|
用IDA打开,f5:
main函数:
func函数:
func函数接受一个参数(0xDEADBEEF),之后通过gets()接受输入。因此可以通过栈溢出,将a1覆盖为0xCAFEBABE,这样能直接执行 system(“/bin/sh”)
a1 是 func()的参数,在栈上位于 ebp+8h 的位置。而输入字符串的起点为 ebp-2ch。两者相差:0x2c + 0x8h = 52 。
|
|
点击图片放大,扫码知识星球【漏洞百出】
本文标题:Pwnable.kr:bof
文章作者:chybeta
发布时间:2017年04月07日 - 20:04
最后更新:2017年07月28日 - 15:07
原始链接:http://chybeta.github.io/2017/04/07/Pwnable-kr-bof/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。