zoukankan      html  css  js  c++  java
  • MapServer mapserv程序多个远程安全漏洞http://www.chinaantivirus.com/Html/xitongloudong/8720479929.html

    受影响系统:
    University of Minnesota MapServer 5.2.1
    University of Minnesota MapServer 4.10.3
    不受影响系统:
    University of Minnesota MapServer 5.2.2
    University of Minnesota MapServer 4.10.4
    描述:
    --------------------------------------------------------------------------------
    BUGTRAQ ID: 34306
    CVE(CAN) ID: CVE-2009-0839,CVE-2009-0840,CVE-2009-0841,CVE-2009-0843,CVE-2009-0842,CVE-2009-1176,CVE-2009-1177

    MapServer是用于创建交互式地图应用的多平台程序。

    MapServer中存在多个安全漏洞,可能允许远程攻击者泄露敏感信息、绕过安全限制、导致拒绝服务或入侵有漏洞的系统。

    1) 如果远程攻击者向服务器上传了恶意地图文件或通过id参数传送了包含有超过128字节字符串的特制请求的话,就可以在mapserv CGI程序中触发栈溢出,导致执行任意代码。以下是mapserv.c中有漏洞的代码段:

    406: strncpy(mapserv->Id, mapserv->request->ParamValues[i], IDSIZE);

    1112: int main(int argc, char *argv[]) {
    1114: char buffer[1024], *value=NULL;

    1783: sprintf(buffer, "%s%s%s%s", mapserv->map->web.imagepath, \
    mapserv->map->name, mapserv->Id, MS_QUERY_EXTENSION);

    1826: }

    2) mapserv CGI程序在处理Content-Length头时存在索引错误,远程攻击者可以通过提交特制的POST请求触发堆溢出,导致越界数组访问。成功攻击要求web服务器没有过滤Content-Length头。

    3) 由于没有过滤对mapserv CGI程序所传送的id参数,远程攻击者可以通过目录遍历攻击向任意位置写入文件。以下是有漏洞部分的代码段:

    [mapserv.c]
    1783: sprintf(buffer, "%s%s%s%s", mapserv->map->web.imagepath, \
    mapserv->map->name, mapserv->Id, MS_QUERY_EXTENSION);
    1784: if((status = msSaveQuery(mapserv->map, buffer)) != MS_SUCCESS) \
    return status;

    [mapquery.c]
    89: stream = fopen(filename, "wb");
    90: if(!stream) {
    91: [...]
    92: return(MS_FAILURE);
    93: }

    4) 如果攻击者在.map文件中通过map参数指定了完整路径,则mapserv CGI程序在处理该文件时就会泄露文件中的敏感信息。

    5) mapserv CGI程序对系统中是否存在的文件会返回不同的错误消息,远程攻击者可以利用queryfile请求参数判断是否存在特定的文件。

    6) 特制的地图文件可以在maptemplate.c的msGenerateImages()函数中触发栈溢出。

    <*来源:Joe Testa (joetesta@hushmail.com)

    链接:http://secunia.com/advisories/26561
    http://marc.info/?l=bugtraq&m=123843735416096&w=2
    *>

    测试方法:
    --------------------------------------------------------------------------------

    警 告

    以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

    http://site/cgi-bin/mapserv?map=/tmp/bof.map&mode=query&queryfile=/tmp/queryfile.qf&savequery=1&id=HHHHIIIIJJJJKKKK
    http://site/cgi-bin/mapserv?map={mapfile}&mode=query&queryfile={queryfile}&savequery=1&id=/http://www.cnblogs.com/../tmp/oops>

    建议:
    --------------------------------------------------------------------------------
    厂商补丁:

    University of Minnesota
    -----------------------
    目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

    http://download.osgeo.org/mapserver/mapserver-4.10.4.tar.gz
    http://download.osgeo.org/mapserver/mapserver-5.2.2.tar.gz


    来源:www.china-antivirus.com

    Tags:Ma ap pS Se er rv ve er rm ma ap ps se er rv v程 程序 序多 多个 个远 远程 程安 安全 全漏 漏洞

    点击数: 10

    文章Url:http://www.china-antivirus.com/Html/xitongloudong/8720479929.html

  • 相关阅读:
    Linux下GCC的使用
    Hadoop c++开发
    如何区别PeekMessage&GetMessage SendMessage&PostMessage
    二叉树的三种遍历方式的循环和递归的实现方式
    各种排序算法的代码
    各种排序算法的总结
    EAX、ECX、EDX、EBX寄存器的作用
    浮点型在内存当中的存储方式
    error LNK2001: 无法解析的外部符号
    线程通信
  • 原文地址:https://www.cnblogs.com/si812cn/p/1654390.html
Copyright © 2011-2022 走看看