PHP代码审计5-实战漏洞挖掘-cms后台登录绕过

时间:2023-03-10 05:11:31
PHP代码审计5-实战漏洞挖掘-cms后台登录绕过

cms后台登录绕过

练习源码:【来源:源码下载】(数据库配置信息有误,interesting)

PHP代码审计5-实战漏洞挖掘-cms后台登录绕过

注:需进行安装

1、创建数据库

PHP代码审计5-实战漏洞挖掘-cms后台登录绕过

2、设置账号密码,连接数据库

PHP代码审计5-实战漏洞挖掘-cms后台登录绕过

3.1 正常登录后台,抓包分析数据提交位置【admin/login.php】

第3、4、7行:直接获取提交的数据,未进行参数过滤,可产生SQL注入,绕过登录验证  【有js验证,可直接提交包】

注:若系统开启gpc,则无法绕过

如:adminname=admin' #&adminpass=123123

 <?php
require '../config.php';
$adminname = $_POST['adminname'];
$adminpass = $_POST['adminpass'];
$adminpass .= "Axphp.com";
$adminpass = md5($adminpass);
$adminsql = "select * from axphp_admin where adminname='$adminname' and adminpass='$adminpass'";
$adminery = mysql_query($adminsql, $config);
$adminnum = mysql_num_rows($adminery);
if ($adminnum == "1") {
setcookie("admin", "Y", time() + 3600, '/');
setcookie("admin_name", $adminname, time() + 3600, '/');
header("location:axadmin.php");
} else {
header("location:axphp.php");
}
?>

3.2 若要登录后台,需进行验证(admin/admin_pass.php)

 <?php
require 'check.php';
require '../template/axadmin/head.php';
require '../template/axadmin/banner.php';
require '../template/axadmin/admin_pass.php';
require '../template/axadmin/bottom.php'
?>

#加载了check.php进行验证

 <?php
error_reporting(0);
isset($_COOKIE['admin'])?$check=$_COOKIE['admin']:$check=null;
isset($_COOKIE['admin_name'])?$admin_user=$_COOKIE['admin_name']:$user=null;
if($check==null){header("Location:../index.php");exit;}
?>

第3行,可通过直接在数据包中设置cookie:admin  绕过登录验证,登录后台;第4行,不起作用

【如果cookie为空,跳转/index.php界面】