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界面】

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM