漏洞概要 关注数(20) 关注此漏洞
缺陷编号: WooYun-2014-81751
漏洞标题: ThinkSNS第一弹 - SQL注入
相关厂商: ThinkSNS
漏洞作者: 猪头子
提交时间: 2014-11-05 10:04
公开时间: 2015-02-03 10:06
漏洞类型: SQL注射漏洞
危害等级: 高
自评Rank: 20
漏洞状态: 厂商已经确认
漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系
Tags标签: php源码审核 白盒测试
漏洞详情
披露状态:
2014-11-05: 细节已通知厂商并且等待厂商处理中
2014-11-09: 厂商已经确认,细节仅向厂商公开
2014-11-12: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2015-01-03: 细节向核心白帽子及相关领域专家公开
2015-01-13: 细节向普通白帽子公开
2015-01-23: 细节向实习白帽子公开
2015-02-03: 细节向公众公开
简要描述:
ThinkSNS漏洞系列第一弹,某处处理不当导致SQL注入
详细说明:
漏洞点出现在Comment Widget里:
/addons/widget/CommentWidget/CommentWidget.class.php:138
$_POST经过$data [$key] = t( $data [$key] )后成为$data。
然后添加评论后会根据$data['app']选择同步到哪些应用中去,比如:
/addons/widget/CommentWidget/CommentWidget.class.php:252:
$data['row_id']进入$postDetail = D ( 'weiba_post' )->where ( 'feed_id=' . $data ['row_id'] )->find (),两边没有单引号包围。
而$data['row_id']是前台可控的变量,来自$_POST['row_id'],so,这里就存在SQL注入了。
由于ThinkSNS前台有WAF,因此需要结合t()来绕过:
/core/OpenSociax/functions.inc.php:630
经过t()的变量都会过real_strip_tags($text):
/core/OpenSociax/functions.inc.php:2274
而real_strip_tags($text)里的strip_tags($str, $allowable_tags)会过滤掉tag,所以在SQL关键字中插入tag就能bypass waf,最后成为可以被利用的SQL注入。
漏洞证明:
修复方案:
在SQL查询参数周围加入单引号
版权声明:转载请注明来源 猪头子@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:10
确认时间:2014-11-09 15:45
厂商回复:
非常感谢,都是strip_tags引起的漏洞,有重复提交.
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值
漏洞评价(共0人评价):
登陆后才能进行评分
评论