本文內容:
~什麼是變量覆蓋
~函數解析
~補充
每日一句:
今天開始,有了代碼審計的影子。
這是成爲大佬的必經路,大家儘量都要學會
CNVD證書和代碼審計能力是安全方面找工作制高點
一、什麼是變量覆蓋
1,定義
指的是可以用我們的傳參值替換程序原有的變量值
例如:
<?php
$a = 1;
$a = fg; //在這就完成了覆蓋,是不是很簡單
echo a; //輸出“fh”
?>
2,尋找變量覆蓋
可能會有的場景:
~$$使用不當 //常見
~extract()函數使用不當 //常見
~parse_str()函數使用不當 //常見
~import_request_variables()函數使用不當
~開啓了全局變量註冊等等
二、函數解析
1,extract()
作用:將數組的對應變爲變量的對應
例子:
<?php
$a = "1";
$my_array = array("a" => "Cat","b" => "Dog");
extract($my_array); //啓用函數
echo "\$a = $a; \$b = $b;";
?>
輸出內容:$a = Cat; $b = Dog; //這的變量a被成功覆蓋
補充:php獲得GET與POST傳參,都會將其轉化爲數組形式
2,parse_str()
作用:將字符串變成變量
例子:
<?php
parse_str("name=sb&&age=60"); //啓用函數
echo $name."<br>";
echo $age;
?>
輸出內容:sb和60
3,符號導致(如$$)
不僅函數會造成變量覆蓋,有些符號的特殊搭配也會造成變量覆蓋
例子:
<?php
$a='b';
$b='c';
echo $$a; $$a => $b => c
?>
輸出結果:c
像這種情況並不是開發傻,只是開發爲了實現某些功能,而這麼寫的
比如,這個漏洞就在dede織夢的某個版本中存在。初衷也是爲了實現
將傳參變爲變量,只是沒有進行合適檢查過濾
4,一個代碼審計小工具
Seay源代碼審計系統,感覺還可以,就是規則稍微有點陳舊,可以自己增加
建議:學會利用工具但不要依賴工具,沒好處,對自己的成長不是太有利
找不到工具的,可以私信我
5,php一些代碼
exit與die 這樣的字眼,一般不能讓他觸發。讓他執行,下邊的語句就不執行了
補充一下:php的$_REQUEST
在低版本中,接收 get與post與cookie的傳參
在高於5.2中,就不接受cookie傳參了
三、補充
1,漏洞分類
~事件型漏洞 :僅針對某站點
~通用性漏洞 :一般針對某一套CMS,或者web容易,往往一打一大片
~白盒審計 : 擁有源代碼找漏洞 = 代碼審計
~黑盒測試 : 入侵 [黑盒測試他是有侷限性的]
補,白盒審計可以更好更徹底的找出漏洞
一般挖掘SRC,想拿通用性,推薦CMS白盒審計
2,CMS的通殺用處
~可以獲得CNVD原創漏洞證書
~CMS可以說是關注資產,你可以直接換錢
~CMS通殺可以幫你找到N個漏洞