從源代碼角度重新審視SQL注入漏洞

前言:

1.本章主要是針對面向過程進行源碼審計Key值漏洞注入

2. 涉及源代碼平臺源碼下載
	Site: https://www.s-cms.cn/download.html

3. 利用apache特性繞過(自行了解)

1. 面向過程 源代碼審計

1. 障礙?

  1. 面向過程懶得看/面向對象太繞

  2. 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()函數直接強制轉換成數字了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章