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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP代码审计5-实战漏洞挖掘-cms后台登录绕过相关的知识,希望对你有一定的参考价值。

cms后台登录绕过

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

注:需进行安装

1、创建数据库

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

 

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

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

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

如:adminname=admin\' #&adminpass=123123

 1 <?php
 2 require \'../config.php\';
 3 $adminname = $_POST[\'adminname\'];
 4 $adminpass = $_POST[\'adminpass\'];
 5 $adminpass .= "Axphp.com";
 6 $adminpass = md5($adminpass);
 7 $adminsql = "select * from axphp_admin where adminname=\'$adminname\' and adminpass=\'$adminpass\'";
 8 $adminery = mysql_query($adminsql, $config);
 9 $adminnum = mysql_num_rows($adminery);
10 if ($adminnum == "1") {
11 setcookie("admin", "Y", time() + 3600, \'/\');
12 setcookie("admin_name", $adminname, time() + 3600, \'/\');
13 header("location:axadmin.php");
14 } else {
15 header("location:axphp.php");
16 }
17 ?>

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

1 <?php
2 require \'check.php\';
3 require \'../template/axadmin/head.php\';
4 require \'../template/axadmin/banner.php\';
5 require \'../template/axadmin/admin_pass.php\';
6 require \'../template/axadmin/bottom.php\'
7 ?>

#加载了check.php进行验证

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

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

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

 

以上是关于PHP代码审计5-实战漏洞挖掘-cms后台登录绕过的主要内容,如果未能解决你的问题,请参考以下文章

[PHP代码审计]极致CMS1.9存在SQL注入漏洞

[PHP代码审计]极致CMS1.9存在SQL注入漏洞

PHP代码审计 | 记一次CMS代码审计

[代码审计] beecms 4.0 漏洞总结

74cms_v3.5.1.20141128 后台宽字节注入漏洞(iconv引发)

18-PHP代码审计——kkcms逻辑漏洞分析(验证码重放)