漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-084308
漏洞标题:BiWEB最新门户版注入又一枚
相关厂商:BiWEB
漏洞作者: 路人甲
提交时间:2014-11-24 01:06
修复时间:2015-02-22 01:08
公开时间:2015-02-22 01:08
漏洞类型:SQL注射漏洞
危害等级:中
自评Rank:10
漏洞状态:未联系到厂商或者厂商积极忽略
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-11-24: 积极联系厂商并且等待厂商认领中,细节不对外公开
2015-02-22: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
BiWEB最新门户版注入又一枚,全局过滤的一个遗漏点
详细说明:
在wooyun上看到了有人把biweb的shell拿到了: WooYun: BIWEB门户版Getwebshell漏洞 ,也有人提了其他漏洞,我也来找找它的漏洞吧。去官网下BiWEB门户版最新的5.8.3来看看。
先来看看BiWEB是怎么处理防注入的。首先BiWEB对用户输入进行了全局过滤,过滤的方法在/config/filtrate.inc.php,每个有用户输入的地方,BiWEB都在文件最前面通过文件包含的方式用filtrate.inc.php中的过滤方法对用户输入进行过滤。举个例子说明一下。/index.php文件中通过require_once('config/config.inc.php')来包含config/config.inc.php,而config/config.inc.php中又使用了require_once('filtrate.inc.php')来把filtrate.inc.php包含进来,filtrate.inc.php中的过滤方法如下
这里就先不说这种过滤的脑残之处了。
而有些文件虽然有require_once('config/config.inc.php')语句,但是该语句包含的并不是/config中的config.inc.php,如/archives/include/detail.inc.php中包含的config/config.inc.php则是/archives/config/config.inc.php,而该文件中并没有 require_once('filtrate.inc.php')语句,使的这个文件没有引入全局过滤。
继续往下看,BiWEB还有几处有类似问题。举一例来说。/archives/include/detail.inc.php
继续去看看getInfo(),在/web_common5.8/php_common.php
由于这里没有引入全局过滤,在整个过程中也没有对id进行任何过滤,所以造成了注入。
单引号被成功引入
本次测试是基于error-based blind做的测试,payload如下
成功注入,管理员用户名及密码如下图中所示:
漏洞证明:
见 详细说明
修复方案:
过滤
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝