PHP FOpen Safe_Mode限制绕过漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

PHP是一款开放源代码的网络编程语言。 PHP存在安全模式绕过问题,远程攻击者可以利用漏洞写文件到其他未授权位置,建立文件并执行。 在PHP 5.2.0中可使用写模式绕过safe_mode,fopen()函数描述如下: - -845-845--- Code from PHP520 ext/standard/file.c [START] stream = php_stream_open_wrapper_ex(filename, mode, (use_include_path ? USE_PATH : 0) | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL, context); - -845-845--- Code from PHP520 ext/standard/file.c [END] 再看safe_mode.c - -142-152--- Code from main/safe_mode.c [START] ret = VCWD_STAT(path, &sb); if (ret < 0) { if ((flags & CHECKUID_NO_ERRORS) == 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to access %s", filename); } return 0; } duid = sb.st_uid; dgid = sb.st_gid; if (duid == php_getuid()) { return 1; - -142-152--- Code from main/safe_mode.c [END] 如果duid == php_getuid(), safe_mode将被绕过。 #define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC) 这里查看virtual_stat()函数: - -831-845--- Code from TSRM/tsrm_virtual_cwd.c [START] CWD_API int virtual_stat(const char *path, struct stat *buf...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息