漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2012-015371
漏洞标题:躺在床上读代码之 phpwind后台SQL注射
相关厂商:phpwind
漏洞作者: 快点啊!!
提交时间:2012-11-28 14:50
修复时间:2012-12-03 14:50
公开时间:2012-12-03 14:50
漏洞类型:SQL注射漏洞
危害等级:低
自评Rank:3
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2012-11-28: 细节已通知厂商并且等待厂商处理中
2012-12-03: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
这个漏洞是一个后台注射,影响不大,本身我是不想发的,漏洞本身可能造成影响不大,但是整个漏洞分析的过程应该在自己还有兴趣的时候记录下来,因为以后我会知道当时还有兴趣分析了它。
PHPWIND是我一直以来觉得为了实现安全无所不用其极的一款产品,我是喜欢这样小聪明解决问题的产品的。
该产品使用checkVar函数全局将GP(GET,POST)中的.. ) < = 都替换成了HTML实体,所以即使你找到了一个SQL注射,你也会被限制在不允许使用函数及子查询中,即使你找到了一个代码执行漏洞,也被限制在函数和php标签的开始中。
以上这一段也是为什么我还是写了这个漏洞的原因之一,我觉得一个产品做的这样的事情应当被人所知。
详细说明:
首先,我找到了一个函数。
deleteMessagesByMessageIds
在lib/message/db/ms_messagesdb.class.php中
所以我知道如果没有什么东西限制messageIds必须是数组的话,它如果是一个字符串的话,将会导致SQL注射,而接下来我就需要找到到底在哪里它不被要求是一个数组。
然后我找到了manageMessageWithMessageIds函数,在lib/message/message/search.ms.php。
接下来我就发现它在后台被调用了。
在admin/superdel.php中
前面我提到了checkVar,对做这个事情的人我发自内心的钦佩。
之所以在这里我们能注入是因为这个函数对后台放了一马。
中的
漏洞证明:
修复方案:
S::gp(array('delid'),'P',2);
: )
版权声明:转载请注明来源 快点啊!!@乌云
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2012-12-03 14:50
厂商回复:
最新状态:
暂无