整数溢出漏洞
题目
请在XP VC6生成课本示例4-2的案例(DEBUG模式)。进而,修改input.txt文件,使得程序运行时弹出计算器。
提示:input.txt在利用IDE调试时需要放到cpp文件相对目录下;单独运行exe的时候,需要放到exe所在目录中
解答
课本示例
|
思路
当len1和len2均较大时,short all_len = len1 + len2; 使all_len发生溢出,进入if代码块,info长度为len1+len2,超过short范围,即MAX_INFO,info覆盖函数指针fuc_ptr的值。将原来fuc_ptr指向func函数改为指向func1函数即可
过程
- compile,下断点,debug运行,查看
func和func1地址


正常情况下运行弹出记事本
input.txt中应为两段字符串,中间用空格隔开。当栈中info数据超出定义时的限制便会覆盖函数指针的内容,使用ultraedit修改input.txt,将超出部分修改为待调用函数的地址
运行,弹出计算器

All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.



