前言:
1.本章主要是針對面向過程進行源碼審計Key值漏洞注入
2. 涉及源代碼平臺源碼下載
Site: https://www.s-cms.cn/download.html
3. 利用apache特性繞過(自行了解)
1. 面向過程 源代碼審計
1. 障礙?
-
面向過程懶得看/面向對象太繞
-
php造成sql注入根本原因:
1. mysql_query();
2. mysqli_query();
3. (new PDO())->query();
2. 審計思路:
1. XEE(外部實體注入)
2. Key值導致sql注入
1> 這裏拓展對於key的理解原理:
後端:
foreach ($_GET as $a=>$b){
echo "{$a}:{$b}<br>";
}
前端:
http://localhost:63342/WWW/test.php?a=1&?b=2
結果:a:1 <br> b:2
原理: 等號前面是鍵/等號後面是值
3.PHP弱類型驗證判斷
1. 判斷的時候會進行強制類型轉換,且字符不能轉int類型\
第一位不是數字就轉換不了
3. 基於面向過程審計S-CMS平臺KEY漏洞
1. 測試代碼層原理代碼waf通常是全局過濾
1> var_dump($_GET);
exit();
原理:輸出變量返回的結果echo則不行;
2. 輸入過濾是會吧某些關鍵字給替換掉
4. 現代化源碼常見漏洞出現問題
1. XXE導致sql注入
2. key導致sql注入
5. 審計思路
1. 首先從入口(index.php)開始看
2. 首先看看有沒有底層函數以及查詢函數
3. 查看mysqli 還是mysql
4. 看是否封裝mysql查詢函數
5. 查看代碼層WAF
6. 追溯輸入是否被過濾
7. 構造Payload
Tip:intval()函數直接強制轉換成數字了