漏洞概要
关注数(24)
关注此漏洞
漏洞标题:APPCMS注射漏洞
提交时间:2013-12-11 18:11
修复时间:2014-03-08 18:12
公开时间:2014-03-08 18:12
漏洞类型:SQL注射漏洞
危害等级:高
自评Rank:20
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
Tags标签:
无
漏洞详情
披露状态:
2013-12-11: 细节已通知厂商并且等待厂商处理中
2013-12-16: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-02-09: 细节向核心白帽子及相关领域专家公开
2014-02-19: 细节向普通白帽子公开
2014-03-01: 细节向实习白帽子公开
2014-03-08: 细节向公众公开
简要描述:
前台sql注射漏洞可爆后台密码,但在不知道后台地址及安全码的情况下略显鸡肋。。
详细说明:
APPCMS是一款面向安卓应用的建站CMS,我们可以轻松地利用appcms建立一个发布、收集安卓APP的CMS。
这里是默认安装好的首页,感觉做的还挺不错,有点安卓市场的范儿。
下载最新版本appcms_1.3.890。
查看index.php,有一段似乎是限制了搜索词的代码:
所以当我们在首页搜索含有“'”的关键词时会有提示:
但我们往前看,却发现了一段输出ajax的代码,这时候并没有过滤……所以注入由此产生:
当$_GET[‘q’]非空且$_GET[‘tpl’]为空时进入这个IF,因为刚才我们搜索的时候参数是这样:?tpl=search&q='sd,所以才没有进入这个if。
我们看到这个if语句中,直接把trim($_GET[‘q’])带入了select语句,造成了注入。
给出利用exp:
不过爆出了管理员密码也有点鸡肋,因为这个cms强制让用户修改后台地址,而且后台登录也选择性地有“安全码”。不过结合之前一个任意文件下载漏洞,也能读到安全码~
漏洞证明:
测试官网主站的时候失败了,可能主站不一样,但是官方演示站和本地用最新版搭建的都可以注入。
演示站:
本地:
修复方案:
漏洞回应
厂商回应:
危害等级:无影响厂商忽略
忽略时间:2014-03-08 18:12
厂商回复:
最新状态:
2013-12-16:已修复
漏洞评价:
评论
-
洞主分析有错误把!if (!preg_match("/^[\x{4e00}-\x{9fa5}\w {0}]+$/u", $_GET['q'])) { die('搜索词只允许下划线,数字,字母,汉字和空格,请重新输入。点此<a href ="' . SITE_PATH . '">回到首页</a>'); }这里直接die了。。。 至于你外网目标测试成功 应该是老版本的 ?
-
2013-12-16 23:10 |
phith0n ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)
@乌云合作伙伴-知道创宇 我下的那个版本ajax的那部分在这个die前面,现在最新的版本我不知道。我在详情里说清楚了。
-
2013-12-16 23:12 |
phith0n ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)
@乌云合作伙伴-知道创宇 我发出来以后官方就修复了,然后官方也不给评分。。到头来都算在我头上?……我最后的解决方案里说的就是把那个if放到ajax前面
-
哦 这样啊 建议分析的时候 写清楚比较靠谱。因为我们分析发现这个die判断在ajax之前
-
@phith0n 嗯 开始之看了你的分析 没看你的修补建议了 看来是官方不靠谱啊 :)
-
2013-12-17 15:08 |
phith0n ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)
@乌云合作伙伴-知道创宇 嗯。。对呀。。这厂商……
-
2014-01-15 19:49 |
phith0n ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)
@xsser 这种漏洞厂商忽略了,没有rank了吗?还有另外一个appcms的,也忽略了