漏洞概要 关注数(24) 关注此漏洞
>
漏洞详情
披露状态:
2014-09-24: 细节已通知厂商并且等待厂商处理中
2014-09-29: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-11-23: 细节向核心白帽子及相关领域专家公开
2014-12-03: 细节向普通白帽子公开
2014-12-13: 细节向实习白帽子公开
2014-12-20: 细节向公众公开
简要描述:
sql注入
详细说明:
appcms并没有使用全局的变量过滤,而是采用了单个变量使用时候,addslashes,所以一旦出现遗漏,就会出现注入。
评论的时候会将IP纪录进数据库。
ip可以伪造:
*/
public static function getip() {
$onlineip = '';
if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}
跟进single_insert 函数,可以看到fields数组的处理:
需要gpc为off,进行注入。
测试poc 非exp: a' or mid(database(),1,6)='appcms' or ' 数据库正确的时候,会输出1,方便测试直接把执行的sql输出显示了。
漏洞证明:
修复方案:
版权声明:转载请注明来源 D&G@乌云
>
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-12-20 18:44
厂商回复:
最新状态:
暂无