74CMS 20150423最新版高危逻辑设计缺陷导致的安全问题(官方demo演示)

漏洞概要

缺陷编号:WooYun-2015-0122057

漏洞标题:74CMS 20150423最新版高危逻辑设计缺陷导致的安全问题(官方demo演示)

相关厂商:74cms.com

漏洞作者:HackBraid

提交时间:2015-06-23 17:14

公开时间:2015-09-25 09:30

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

Tags标签:

漏洞详情

披露状态:

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

简要描述:

74CMS最新版高危逻辑设计缺陷

详细说明:

74CMS最新版在处理转码现在使用的utf8_to_gbk()函数,看过74CMS的都知道之前用的iconv函数被雨牛报过漏洞,现在里面使用了stripslashes函数:

现在存在两种情况:1.GPC开启,stripslashes函数干掉GPC的转义;2.GPC关闭,但是有全局转义的函数,stripslashes干掉全局转义;我们跟进addslashes_deep函数:

主要逻辑在else里:1.GPC开启,直接使用mystrip_tags函数处理,然后返回;2.GPC关闭,再次使用addslashes函数进行转义处理,然后返回;也就是说如果GPC开启,那么使用stripslashes函数直接就生吞GPC?吓得我一身冷汗...我们再跟进mystrip_tags函数看看有没有过滤:

发现仅仅简单过滤xss,那么注入就来了!我们全局搜索下看使用utf8_to_gbk()函数处理的条数,竟然有82条:

漏洞证明:

注入1./plus/ajax_common.php

POC:http://**.**.**.**/plus/ajax_common.php?act=hotword&query=%E4%BC%9A%E8%AE%A1%%27%20and%20w_hot%20like%20%27%1

sqlmap直接跑无压力,就是这么暴力,就是这么任性:

注入2./plus/ajax_street.php

POC:http://**.**.**.**/plus/ajax_street.php?act=key&key=%E5%BB%BA%E8%AE%BE%%27%20and%20c_name%20like%20%27%%E5%BB%BA%E8%AE%BE

注入3./plus/ajax_user.php

直接sqlmap验证,我们注册一个账户叫Tester

注入4./plus/ajax_user.php

同样用注册邮箱88888@**.**.**.**测试

注入5./user/user_apply_jobs.php

注入5有点略长,需要注册三个账户:求职者A(HunterA),求职者B(HunterB)和企业C(HackerE)首先HunterA申请HackerE发布的职位

然后点击投递后抓包,上insert型的payload狙击:

HackerE登录后即可成功获取注入信息

注入6./user/user_invited.php

注入7./user/user_report.php

注入8./user/user_report_resume.php

注入9./user/company/company_info.php(该文件注入点太多,需要注册企业账户,也不赘述)

注入点10./user/personal/personal_resume.php(注入点很多,update型注入点)再来一处update型注入点

修改我个人简历后抓包,update注入,覆盖掉可控的telephone变量,POC如下:

预览简历发现telephone字段成功注出

注入11、12./user/plus/ajax_user.php

注入13-15./wap/personal/wap_user.php、/wap/personal/wap_apply.php、/wap/company/wap_company_jobs.phpwap端的功能存在同样问题

我们看到是个update型的注入,由于是简历,那么我们可以在其它字段显示出来,后边的引号再用引号闭合即可!查看数据库中resume表的字段,那么就使用fullname字段出注入数据,sex字段闭合后面单引号

在个人简历处,修改简历名字并抓包,POC为title=bob',fullname=user(),sex='1

查看基本信息,发现成功获取当前的用户:

修复方案:

stripslashes函数的使用要谨慎谨慎!生吞GPC,绕过全局防御!可否给个精华

漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2015-06-27 09:29

厂商回复:

最新状态:

暂无

评价

  1. 2010-01-01 00:00 玉林嘎 白帽子 | Rank:757 漏洞数:64)

    关注!

  2. 2010-01-01 00:00 牛肉包子 白帽子 | Rank:190 漏洞数:17)

    mark

  3. 2010-01-01 00:00 Looke 白帽子 | Rank:1078 漏洞数:85)

    屌屌屌

  4. 2010-01-01 00:00 这只猪 白帽子 | Rank:16 漏洞数:1)

    很屌。小伙子不错来我公司上班吧!

  5. 2010-01-01 00:00 我对网名没兴趣 白帽子 | Rank:0 漏洞数:0)

    很奇怪,只能注入得到user(),并不能获得数据库和表