bjdctf_2020_babystack
使用checksec查看:

只开启了栈不可执行。
放进IDA中分析:

__isoc99_scanf("%d", &nbytes);:让用户输入下次输入时接受的数据的长度。read(0, &buf, (unsigned int)nbytes);:变量nbytes用户可控,存在栈溢出。
在Functions name处可发现后门函数backdoor():

- 直接返回一个shell
题目思路
- 变量
(unsigned int)nbytes用户可控,且是个无符号函数。 - 可用
-1进行绕过,这样用户可输入的数据长度就十分巨大了。 - 接着调用
backdoor()即可getshell。
步骤解析
无需

这篇博客详细讲解了一起针对bjdctf_2020_babystack的栈溢出攻击,通过用户可控的nbytes参数,实现数据长度放大并触发backdoor函数,最终获取shell。作者提供了exploit步骤和完整代码实例,展示了如何利用checksec和IDA进行安全分析。
最低0.47元/天 解锁文章
351





