win2003 PHP伺服器的突破新思路

03ngnntds發表於2019-04-03

從WIN2000到WIN XP, 再到WIN2003, MS IIS伺服器安全性的提高是顯而易見的。 在WIN2000中, 一個普通的PHP SHELL便能把它打垮; 在WIN XP, 即使Safe mode = off,你也無法用system() 等函式執行系統命令, 但是我們還能用com()函式進行突破;到WIN 2003,即使IIS 和PHP都是預設安裝,你用system(), com()也可能拿它沒轍。這時候你就不得不使用一些新的方法來進行突破了。
  1、disable_functions的突破
  在php -4.0.1以上的版本,php.ini裡引入了一項功能disable_functions , 這個功能比較有用,可以用它禁止一些函式。比如在php.ini里加上disable_functions = passthru exec system popen 那麼在執行這些函式的時候將會提示Warning: system() has been disabled for security reasons,同時程式終止執行。但是也不是沒有辦法執行系統命令了。因為php採用了很多perl的特性,比如還可以用( )來執行命令,示例程式碼如下:   <?$output = ls -al`;echo "

ticks = GetTickCount();
  // 轉換為易於理解的文字
  ticks / 1000);
  secs / 60);
  mins / 60);
  ticks,
  mins,
  mins - (str,
  “Uptime Information”,
  MB_OK);
  ?>
  可惜我還沒有理解透徹dl()和W32api, 所以就不亂舉例子了, 免得誤導讀者。
  3、COM 和 .Net(Windows)函式的應用
  COM(Component Object Model,元件物件模型)是微軟開發的軟體規範,它用於開發物件導向的、編譯好的軟體元件,它允許把軟體抽象成為二進位制的部件,主要運用於windows平臺。
  PHP 的 Windows 版本已經內建該擴充套件模組的支援。無需載入任何附加擴充套件庫即可使用COM函式。它的使用方法類似於C++或Java中類的建立的語法,並把COM的類名作為引數傳遞到建構函式。例如使用在PHP中呼叫“WScript.Shell”執行系統命令:
  com=new COM(“WScript.Shell”)) echo “yes”;
  if(!com->exec(cmd2=$cmd1->stdout())
  {
  echo “can not stdout()”;

文章來源:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69911024/viewspace-2640202/,如需轉載,請註明出處,否則將追究法律責任。

相關文章