手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>安全防护>列表

安全技巧:寻找客户端漏洞的艺术

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  原因:对 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类函数

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

  多种逻辑上的错误

  充分发挥想象:刷新率?

  总结

  安全提示:

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

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

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

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!