CMS视频网站源码免账号登录漏洞
注意:此漏洞涉及源码有:筱瞳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。
评论
访客
回复看看
wzp
回复看看
谜呓呓
回复看看
飞狐
回复这个吊炸天。。
访客
回复qrqrerewqrewqrewq
访客
回复看看怎么玩
访客
回复看一看
访客
回复看看怎么玩
访客
回复666
烟草de味道
回复@访客 我也看看昂
111222333
回复@访客 我来看看啊
111222333
回复@访客 kkkkkk