2012西电攻防溢出第二题

这是2012西电攻防溢出第二题,是我见过最简单的溢出题了。

题目要求:

1、  请输入一段字符串;

2、  目的是使程序显示如下对话框:

 2012西电攻防溢出第二题_第1张图片

                  

3、  不得修改程序本身;

4、  提交答案,给出字符串内容。

 

运行程序如图:


随便输入较长的字符串就出错了,可见触发点很好找,打开OD看代码,

2012西电攻防溢出第二题_第2张图片

不仅找到了打印字符串和输入的函数,还直接看到了”Exploit2”的对话框,可见有多简单,

Scanf函数指定输入数据的缓冲区位置是18ff30,之后就拿18ff44为开始地址的4个字节与0xBBCCDDAA比较,若相等,则拿[18ff40~18ff43]与0xDDAABBCC比较,若相等,则拿[18ff3c~18ff3f]与0xCCBBAADD相比较,若再相等,则拿[18ff38~18ff3b]与0xAABBCCDD相比较,若还相等,则执行弹出“exploit2”的对话框。如此便构造数据


将这串数据复制,然后在程序中粘贴,就弹出了要求的对话框

2012西电攻防溢出第二题_第3张图片

你可能感兴趣的:(漏洞)