漏洞概要
关注数(24)
关注此漏洞
漏洞标题:ThinkSNS某处二次注入Bypass防御获取任意数据
提交时间:2014-10-18 08:09
修复时间:2014-12-30 14:44
公开时间:2014-12-30 14:44
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
Tags标签:
无
漏洞详情
披露状态:
2014-10-18: 细节已通知厂商并且等待厂商处理中
2014-10-23: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-12-17: 细节向核心白帽子及相关领域专家公开
2014-12-27: 细节向普通白帽子公开
2015-01-06: 细节向实习白帽子公开
2014-12-30: 细节向公众公开
简要描述:
ThinkSNS某处二次注入Bypass防御获取任意数据
详细说明:
第一部分:漏洞分析
文件/apps/public/Lib/Action/AccountAction.class.php
此时attach_ids已经进入数据库了
下面来看看出库的地方
可以看到,取出attach_id后,通过|分割,然后再次计入了数据库
这里没有引号保护,导致sql注入
所以只要我们在attach_id插入恶意数据即可二次触发
第二部分:bypass绕过分析
来看看t函数是否能绕过
/core/OpenSociax/functions.inc.php
这里有一个real_strip_tags函数来看看
这里将html过滤掉了
综上,当恶意sql语句进入t时,首先将html标签过滤,然后进入addslashes
那么我们在sql关键字中插入html标签即可绕过全局防御了
如select=se<a>lect,这样绕过了全局,最后又变成了select,成功绕过
漏洞证明:
1、前台登陆,在个人信息处,申请认证
2、然后提交时,抓包,将attach_ids修改为:
请求如下:
3、然后回到第1步:
访问
此时在认证附件处显示管理员账户信息:
当然如果条件满足的话直接GetShell也是ok的
修复方案:
1、where后面的条件为嘛不加保护咧?
2、防御逻辑出错了
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-12-30 14:44
厂商回复:
最新状态:
暂无