黑客寻找客户端漏洞的方法-黑客软件(2)

王朝数码·作者佚名  2011-01-18
窄屏简体版  字體: |||超大  

实例原理

相信“ 文件” 输入参数,没做检查直接用作memcpy 的参数。PNG漏洞,不同的模式逻辑问题1:

EEYE PNG (Portable Network Graphics) Deflate Heap Corruption Vulnerability

原因:对 Length 码 #286 and #287没有做正确的处理,导致解压程序认为长度是0

do { *dest = *src; ++dest; ++src; } while (--len);

逻辑问题2:libPNG 1.2.5 堆栈溢出

代码:

if (!(png_ptr-mode & PNG_HAVE_PLTE)) {

/* Should be an error, but we can cope with it */

g_warning(png_ptr, "Missing PLTE before tRNS"); }

else if (length (png_uint_32)png_ptr-num_palette) {

g_warning(png_ptr, "Incorrect tRNS chunk length");

g_crc_finish(png_ptr, length);

return;

}

分析:代码编写的逻辑错误,错误的使用了else if.

相似漏洞:MSN png 漏洞,Media player png 漏洞

逻辑问题的总结

非常容易出现在复杂的文件格式处理中

容易出现在压缩,解压代码中:需要处理很多长度,大小相关的参数。

这种漏洞不一定是缓冲区溢出,也可能是越界访问等等

想象漏洞

发现漏洞有时候是一种想象的过程

例子1:

Venustech ADLab:Microsoft windows Kernel ANI File Parsing Crash Vulnerability

介绍:ANI是WINDOWS 支持的动画光标格式,在ANI是由多个普通的光标文件组成一个动画,其中ANI文件的头处会标记是几个图标frame,WINDOWS 的内核在显示光标的时候并未对该值进行检查,如果将这个数字设置为0,会导致受影响的windows系统计算出错误的光标的地址并加以访问,触发了内核的蓝屏崩溃。不仅仅是应用使用ANI文件时会触发,只要在EXPLORER下打开ANI文件存在的目录就会触发。攻击者也可以发送光标的文件,引诱用户访问含有恶意光标显示的页面,以及发送嵌入光标的HTML邮件,导致被攻击者系统蓝屏崩溃。

原理:在计算frame地址的时候失败。

例子2:

Venustech ADLab:Microsoft windows Kernel ANI File Parsing DOS Vulnerability

介绍:ANI是WINDOWS 2000支持的动画光标格式,在ANI是由多个普通的光标件组成一个动画,其中ANI文件的头处会标记每FRAME切换的频率,该值越小切换的速度越快,WINDOWS 的内核在切换光标FRAME的时候并未对该值进行检查,如果将这个数字设置为0,受影响的windows的内核会陷入内核的死锁,不再响应任何用户界面的操作。该漏洞触发必须要在使用ANI文件的应用中才能触发,攻击者引诱用户访问含有恶意光标显示的页面,以及发送嵌入光标的HTML邮件,导致被攻击者系统内核死琐。

原因:没有考虑刷新频率是0的情况。

总结

下溢:Size参数小于自身所占大小

上溢:Size加上一个正整数值产生上溢

直接作为参数输入memcpy类函数

非法参数导致地址访问越界

多种逻辑上的错误

充分发挥想象:刷新率?

总结

安全提示:

文件格式是攻击者的另一种输入渠道,同样不要信任从文件读取的数据

解析文件格式时应该对参数进行充分的检查

同样需要想象力,需要考虑到每种可能的情况

细节:同样存在一个size参数这次是它本身的大小是4字节,所以当size值为0-3时就会发生整数溢出

第一頁    上一頁    第2頁/共2頁    下一頁    最後頁
第01頁 第02頁 
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航