1.7.1 漏洞公告的分析

“大家拿到任何一篇漏洞公告后,首先要注意是什么程序、它的什么版本有漏洞。从图1-17可以看出,有问题的的版本是FoxMail5.0 beta1、FoxMail5.0 beta2 和FoxMail5.0,那我们就安装上相应的版本,写出对它的溢出攻击程序。这里我用的是Win2000 SP2+FoxMail5.0 beta1。”

“漏洞公告还会给出大概的问题分析。图1-17就说到了,有问题的东东是punylib.dll。安装了FoxMail后,我们可以在安装目录的3rdParty子目录下发现它,大家看!”如图1-18。

“除此之外,漏洞公告一般还会给出漏洞的解决办法或补丁下载,这里我们就不关心了,但在平时生活中,大家一定要重视,这可是安全的保证哦!”

“当然,漏洞公告是不会给我们说如何利用漏洞的。所以除了查看漏洞公告,我们还要查找其他人或安全组织的相关漏洞分析报告。比如root关于FoxMail漏洞的分析,如图1-19。”

“好了,从漏洞公告和分析中,我们可以知道,是FoxMail在处理From:字段时允许的长度超过了缓冲区分配的长度,从而导致了缓冲区溢出。以上的大家都能理解吧?”老师问道。

“嗯。但如何写该缓冲区溢出漏洞的利用程序呢?”胖胖的玉波急不可耐了。

“好,就让我们依次解决上节课上说的三个条件,来实现对FoxMail漏洞的利用编写。首先复习一下要成功利用缓冲区溢出需要的三个条件:

1.有问题程序返回点的精确位置――我们可以把它覆盖成任意地址。

2.ShellCode――一个提供给我们想要的功能的代码。

3.JMP ESP的地址――把返回点覆盖JMP ESP的地址,这样可跳入ShellCode。”

“这三点大家一定要牢牢记在头脑里,这是标准缓冲区堆栈溢出利用的标准方法!”

同学们都使劲的点点头。

“来,就让我们一步步的解决需要的这三个条件吧!”