1.10.2 初步利用

“我们温故而知新,还是按照三个步骤来进行。”

“第一、异常点位置。通过漏洞分析可以知道,异常处理点在Buffer(缓冲区)第240字节处,所以我们在236字节放上 NOP NOP jmp 04 ,在240字节处放上JMP EBX的地址,在244字节放上我们的ShellCode。”

“第二、ShellCode。这里我也不说了,还是添加用户。”

“第三、Jmp EBX的地址——0x7FFA1571。”

好,我们的三步曲都有了,来构造吧!构造形式如图1-43。”

“哦,Yeah!,我们把构造好的程序运行吧!”大家都迫不及待了。“好!运行!”手忙脚乱的把程序编译并运行开来。

“咦?怎么没有反应?”等了半天后,同学们望着黑黑的屏幕都呆了。

“呵呵!”老师看到大家忙完后才说道,“这个IIS漏洞和前面讲的那些漏洞有些不一样——它要对URL进行一定的编码转换,这样转换后,我们的JMP 04、JMP EBX的地址和ShellCode都被改变啦!当然就不能执行我们想要的ShellCode了。”

“啊?”

“这就是该漏洞不同的地方,也给大家带来了些挑战性,但在实际中,这种事还是很常见的。比如Cmail会把大写改成小写等。”

“哦,那怎么解决呢?”大家问道,“这方面不解决,那很多漏洞都不能用了。”

“对!我们一定要解决。但解铃还需系铃人,首先要看看IDA是如何变换那些URL请求字符的!”