CMS视频网站源码免账号登录漏洞

流氓凡 技术分享 2018-07-22 4.83 K 12

注意:此漏洞涉及源码有:筱瞳CMS、品优1.3.6及以下版本、热剧等其他以品优二开的程序源码。


0x01 漏洞描述
先来一张图:

有人发过这套源码,百度inurl搜索相关链接也有大量的收录信息,今天无意间发现了这套源码的管理员免账号密码登录漏洞可直接登录管理员后台。
0x02 漏洞分析
不懂安全的程序猿不是好码猴。

大家都知道,在写管理员端的时候,必须使用cookie或者session来鉴权和维持会话,相对来说,session是要不cookie安全的,cookie用不好就成了写BUG了。下面的这套系统源码的鉴权文件
cms_check.php

<?php
if (!isset($_COOKIE['admin_name'])) {
    alert_href('非法登录', 'cms_login.php');
}
function getTopDomainhuo()
{
    $xzv_0 = $_SERVER['HTTP_HOST'];
}

大概意思就是判断admin_name的Cookie是否存在,不存在就弹出去。

漏洞问题出在判断$_COOKIE['admin_name']是否存在,有点经验的人就知道Cookie是存储在客户端的,可以直接伪造。
0x03 漏洞利用
随便从百度找个一个网站,


1、直接添加Cookie插件添加admin_name的Cookie信息,值为admin

2、访问管理员的首页 /admin/cms_welcome.php,登录成功!

管理员已经登录上了,至于后面怎么玩就看心情了,XSS很容易,木马上传没仔细测试。
0x04 漏洞修复
姿势1、

[hide_cv]


-admin/cms_check.php     文件一

<?php    if(!isset($_COOKIE['admin_name'])){        
        alert_href('非法登录','cms_login.php');  
          } else {      
            $result = mysql_query('select * from xtcms_manager where m_name = "'.$_COOKIE['admin_name'].'" and m_password = "'.$_COOKIE['admin_password'].'"');        if (!$row = mysql_fetch_array($result)) {            alert_href('请重新登录','cms_login.php');        };    };?>

admin/cms_login.php  文件二

<?php
require_once('../system/inc.php');
if(isset($_POST['submit'])){
    if ($_SESSION['verifycode'] != $_POST['verifycode']) {
        alert_href('验证码错误','cms_login.php');
    }
    null_back($_POST['a_name'],'请输入用户名');
    null_back($_POST['a_password'],'请输入密码');
    null_back($_POST['verifycode'],'请输入验证码');
    $a_name = $_POST['a_name'];
    $a_password = $_POST['a_password'];
    $sql = 'select * from xtcms_manager where m_name = "'.$a_name.'" and m_password = "'.md5($a_password).'"';
    $result = mysql_query($sql);
    if(!! $row = mysql_fetch_array($result)){
        setcookie('admin_name',$row['m_name']);
        setcookie('admin_password',$row['m_password']);
        header('location:cms_welcome.php');
    }else{
        alert_href('用户名或密码错误','cms_login.php');
    }
}
?>


数据库名自行更改,此方案依旧有sql注入风险,请谨慎!

-

[/hide_cv]



姿势2、修改管理员目录名字复杂点,别让人猜出来就ok。


评论

精彩评论