【PHP程式碼審計】Null字元問題
PHP基於C語言編寫,所以可能對於某些字元的處理,在實際執行中可能會有意想不到的結果
漏洞程式碼:
<?php
$file = $_GET [ 'file' ]; // "../../etc/passwd\0"
if ( file_exists ( '/home/wwwrun/' . $file . '.php' )) {
// file_exists will return true as the file /home/wwwrun/../../etc/passwd exists
include '/home/wwwrun/' . $file . '.php' ;
// the file /etc/passwd will be included
}
?>
防禦方法:
<?php
$file = $_GET [ 'file' ];
// 對字串進行白名單檢查
switch ( $file ) {
case 'main' :
case 'foo' :
case 'bar' :
include '/home/wwwrun/include/' . $file . '.php' ;
break;
default:
include '/home/wwwrun/include/main.php' ;
}
?>
版權歸原作者所有.僅供學習交流使用。
相關文章
- php程式碼審計之命令執行中windows/linux的差異化問題PHPWindowsLinux
- PHP程式碼審計——Day 5-postcardPHP
- PHP程式碼審計——Day2-TwigPHP
- php程式碼審計分段學習(php_bug)[2]PHP
- PHP程式碼審計——Day3-Snow FlakePHP
- [程式碼審計]php上傳漏洞總結PHP
- PHP JSON_decode 返回為 null 問題PHPJSONNull
- php程式碼審計之——phpstorm動態除錯PHPORM除錯
- PHP程式碼審計歸納-Ali0thPHP
- 記一次完整的PHP程式碼審計——yccms v3.4審計PHP
- 字元編碼問題字元
- [譯] Go 程式碼評審常見問題Go
- PHP程式碼審計01之in_array()函式缺陷PHP函式
- PHP程式碼審計05之正則使用不當PHP
- 【char* 字元指標的用法】及【輸出NULL的問題】字元指標Null
- JFinalcms程式碼審計
- buu 程式碼審計
- CSCMS程式碼審計
- 打造自己的php半自動化程式碼審計工具PHP
- PHP程式碼審計04之strpos函式使用不當PHP函式
- PHP程式碼審計02之filter_var()函式缺陷PHPFilter函式
- PHP程式碼審計03之例項化任意物件漏洞PHP物件
- 程式碼設計問題
- MySQL 中字元編碼問題MySql字元
- 字元編碼問題記錄字元
- 什麼是程式碼審計?程式碼審計有什麼好處?
- Graudit程式碼安全審計
- 程式碼審計————目錄
- 程式碼審計是什麼?程式碼審計操作流程分為幾步?
- [程式碼審計]web程式對客戶端資料加解密帶來的安全問題Web客戶端解密
- python 安全編碼&程式碼審計Python
- 哪些業務場景需要做程式碼審計?程式碼審計很重要嗎?
- oasys系統程式碼審計
- MYSQL timestamp NOT NULL插入NULL的報錯問題MySqlNull
- scheme跳轉特殊字元編碼問題Scheme字元
- 空格在程式碼中變成其他字元或者亂碼問題解決方法字元
- apache直接列印php程式碼或直接下載問題ApachePHP
- Hackthebox bagel.dll 程式碼審計
- [JavaWeb]Shiro漏洞集合——程式碼審計JavaWeb