漏洞概要 关注数(25) 关注此漏洞
缺陷编号: WooYun-2015-119999
漏洞标题: 74cms三处sql注入漏洞
相关厂商: 74cms.com
漏洞作者: answer
提交时间: 2015-06-12 15:40
公开时间: 2015-09-15 15:43
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
Tags标签: php源码分析
漏洞详情
披露状态:
2015-06-12: 细节已通知厂商并且等待厂商处理中
2015-06-17: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-08-11: 细节向核心白帽子及相关领域专家公开
2015-08-21: 细节向普通白帽子公开
2015-08-31: 细节向实习白帽子公开
2015-09-15: 细节向公众公开
简要描述:
代码审计第三发
详细说明:
看代码
include/fun_company.php 963-968行
可以看到$action未做处理就进入SQL语句了。下面看看哪些地方调用了action_user_setmeal这个函数
有以下这些文件
其中我划线的文件,变量就是我们可控的。下面看看那三个文件
1.plus/ajax_get_promotion.php 263-264行
可看到$user_pname来自用户传过去pro_name参数,而且并未做处理,就进入了action_user_setmeal 函数,所以造成注入。
2.user/company/company_ajax.php 266-267行
3.user/company/company_promotion.php 262-263行
这两处和第一处一样,代码就不贴了。
下面证明
漏洞证明:
我们用第二处来证明,因为这一出,更直观。
首先注明:需要后台的运营模式是套餐模式。(虽然默认的不是,但是总会用网站的是需要第二种模式的。)
1.注册一个企业账号
2.发布一个职位
3.来到推广的地方
可任意点击红框内的一个按钮,这里拿置顶来测试。
点击置顶之后,截包,我划红线的地方就是可控的参数
看看SQL语句监控
完美执行,这里我们就可以该自己的用户类型,变成高级会员 哈哈哈。
因为有waf,绕不过,所以只能用布尔盲注。
所以找了找页面变化的地方。
加载payload之前的
加了payload之后的是
免费会员就成了我们提交的34了,此处就可以作为布尔盲注判断的地方,进行注入。(可以写脚本跑的)。
至于payload中的uid参数,抓个包就能看见是多少了
其他两处都差不多
修复方案:
你懂的额
版权声明:转载请注明来源 answer@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2015-09-15 15:43
厂商回复:
漏洞Rank:15 (WooYun评价)
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值