【白帽子】變量覆蓋漏洞

0x01 全局變量覆蓋

  • 變量若未被初始化(PHP中使用變量并不需要初始化),且能被用戶控制,很可能導(dǎo)致安全問題
  • 當(dāng)register_globals=ON時,變量來源可能是各個地方
    通過$GLOBALS獲取的變量,也可能導(dǎo)致變量的覆蓋
if(ini_get('register_globals')) foreach($_REQUEST as $k=>$v) unset(${$k});

這是一段禁用register_globals的代碼


php中unset的用法

由于unset只會銷毀局部變量,要銷毀全局變量必須使用$GLOBALS
給出代碼:

<?php
echo "Register_globals:".(int)ini_get("register_globals")."<br/>";
if(ini_get('register_globals')) foreach($_REQUEST as $k=>$v) unset(${$k});

print $a;
print $_GET[b];
?>

這段代碼$a未初始化,如果嘗試注入"GLOBALS[a]"以覆蓋全局變量時,將成功控制變量$a的值

unset($GLOBALS['bar']) //可以銷毀全局變量

0x02 extract()變量覆蓋

extract()函數(shù)能將變量從數(shù)組導(dǎo)入當(dāng)前的符號表
int extract(array $var_array[,int $extract_type [,string $prefix]])
第二個參數(shù)$extract_type指定函數(shù)將變量導(dǎo)入符號表時的行為,最常見的兩個值

  • EXTR_OVERWRITE……如果變量名沖突,則覆蓋已有變量
  • EXTR_SKIP……跳過不覆蓋
    安全的做法是確定register_globals=OFF后,在調(diào)用extract()時使用EXTR_SKIP保證已有變量不會被覆蓋

0x03 import_request_variables變量覆蓋

bool import_request_variables(string $types[,string $prefix])
import_request_variables()將GET、POST、Cookie中的變量導(dǎo)入到全局,第二個參數(shù)是為導(dǎo)入的變量添加的前綴,如果沒有指定,則將覆蓋全局變量
import_request_variables('G')
指定導(dǎo)入GET請求中的變量,沒有規(guī)定前綴,從而導(dǎo)致變量覆蓋

0x04 安全建議

  • 確保register_globals=OFF,若不能自定義php.ini,則應(yīng)該在代碼中控制
  • 熟悉可能造成變量覆蓋的函數(shù)和方法,檢查用戶是否能控制變量的來源
  • 養(yǎng)成初始化變量的好習(xí)慣
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是變量覆蓋漏洞 自定義的參數(shù)值替換原有變量值的情況稱為變量覆蓋漏洞 經(jīng)常導(dǎo)致變量覆蓋漏洞場景有:$$使用不當(dāng),...
    nice_o閱讀 16,971評論 5 2
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,525評論 19 139
  • PHP:include()``include_once()``require()``require_once() ...
    尋夢xunm閱讀 926評論 1 4
  • 首先 error_reporting(E_ALL); 打開所有錯誤報告 ob_start(); 打開輸出緩存 如果...
    f675b1a02698閱讀 1,081評論 1 1
  • 夜半生暗潮,冥煙罩月輪, 潮開分兩半,魂影踏浪來。 厲嘯起驚瀾,朱色泛銀波, 妖星亂天地,生魂當(dāng)死魂。 萬霆劈穹頂...
    郎玄珠閱讀 403評論 3 13

友情鏈接更多精彩內(nèi)容