win2003 PHP服务器的突破新思路

从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 "


    
    
     
     
      
       
       
         o 
        
       
         u 
        
       
         t 
        
       
         p 
        
       
         u 
        
       
         t 
        
       
         &lt; 
        
       
         / 
        
       
         p 
        
       
         r 
        
       
         e 
        
       
         &gt; 
        
       
         &quot; 
        
       
         ; 
        
       
         ? 
        
       
         &gt; 
        
       
           
        
       
           
        
       
         据 
        
       
         说 
        
       
         这 
        
       
         个 
        
       
         只 
        
       
         有 
        
       
         设 
        
       
         成 
        
       
         s 
        
       
         a 
        
       
         f 
        
        
        
          e 
         
        
          m 
         
        
       
         o 
        
       
         d 
        
       
         e 
        
       
         为 
        
       
         o 
        
       
         n 
        
       
         才 
        
       
         能 
        
       
         避 
        
       
         免 
        
       
         , 
        
       
         但 
        
       
         上 
        
       
         次 
        
       
         我 
        
       
         在 
        
       
         一 
        
       
         台 
        
       
         国 
        
       
         外 
        
       
         的 
        
       
         服 
        
       
         务 
        
       
         器 
        
       
         上 
        
       
         使 
        
       
         用 
        
       
         的 
        
       
         时 
        
       
         候 
        
       
         还 
        
       
         是 
        
       
         失 
        
       
         败 
        
       
         了 
        
       
         , 
        
       
         人 
        
       
         并 
        
       
         不 
        
       
         是 
        
       
         什 
        
       
         么 
        
       
         时 
        
       
         候 
        
       
         都 
        
       
         能 
        
       
         那 
        
       
         么 
        
       
         走 
        
       
         运 
        
       
         的 
        
       
         : 
        
       
         ) 
        
       
           
        
       
           
        
       
         2 
        
       
         、 
        
       
         d 
        
       
         l 
        
       
         ( 
        
       
         ) 
        
       
         函 
        
       
         数 
        
       
         的 
        
       
         应 
        
       
         用 
        
       
           
        
       
           
        
       
         当 
        
       
         任 
        
       
         何 
        
       
         P 
        
       
         H 
        
       
         P 
        
       
         的 
        
       
         内 
        
       
         部 
        
       
         命 
        
       
         令 
        
       
         执 
        
       
         行 
        
       
         数 
        
        
        
          和 
         
         
         
           ′ 
          
         
           ′ 
          
         
        
       
         都 
        
       
         无 
        
       
         法 
        
       
         使 
        
       
         用 
        
       
         的 
        
       
         时 
        
       
         候 
        
       
         , 
        
       
         可 
        
       
         以 
        
       
         尝 
        
       
         试 
        
       
         d 
        
       
         l 
        
       
         ( 
        
       
         ) 
        
       
         , 
        
       
         该 
        
       
         方 
        
       
         法 
        
       
         只 
        
       
         能 
        
       
         用 
        
       
         于 
        
       
         s 
        
       
         a 
        
       
         f 
        
       
         e 
        
       
         m 
        
       
         o 
        
       
         d 
        
       
         e 
        
       
         = 
        
       
         o 
        
       
         f 
        
       
         f 
        
       
         , 
        
       
         因 
        
       
         为 
        
       
         它 
        
       
         在 
        
       
         安 
        
       
         全 
        
       
         模 
        
       
         式 
        
       
         下 
        
       
         是 
        
       
         被 
        
       
         禁 
        
       
         用 
        
       
         的 
        
       
         。 
        
       
         利 
        
       
         用 
        
       
         d 
        
       
         l 
        
       
         ( 
        
       
         ) 
        
       
         你 
        
       
         可 
        
       
         以 
        
       
         直 
        
       
         接 
        
       
         调 
        
       
         用 
        
       
         W 
        
       
         32 
        
       
         a 
        
       
         p 
        
       
         i 
        
       
         函 
        
       
         数 
        
       
         , 
        
       
         可 
        
       
         惜 
        
       
         这 
        
       
         个 
        
       
         扩 
        
       
         展 
        
       
         已 
        
       
         被 
        
       
         移 
        
       
         动 
        
       
         到 
        
       
         P 
        
       
         E 
        
       
         C 
        
       
         L 
        
       
         库 
        
       
         中 
        
       
         , 
        
       
         且 
        
       
         自 
        
       
         P 
        
       
         H 
        
       
         P 
        
       
         5.1.0 
        
       
         以 
        
       
         下 
        
       
         版 
        
       
         本 
        
       
         起 
        
       
         不 
        
       
         再 
        
       
         被 
        
       
         绑 
        
       
         定 
        
       
         。 
        
       
         以 
        
       
         下 
        
       
         是 
        
       
         手 
        
       
         册 
        
       
         里 
        
       
         的 
        
       
         例 
        
       
         子 
        
       
         : 
        
       
           
        
       
           
        
       
         / 
        
       
         / 
        
       
         加 
        
       
         载 
        
       
         此 
        
       
         扩 
        
       
         展 
        
       
           
        
       
           
        
       
         d 
        
       
         l 
        
       
         ( 
        
       
         &quot; 
        
       
         p 
        
       
         h 
        
        
        
          p 
         
        
          w 
         
        
       
         32 
        
       
         a 
        
       
         p 
        
       
         i 
        
       
         . 
        
       
         d 
        
       
         l 
        
       
         l 
        
       
         &quot; 
        
       
         ) 
        
       
         ; 
        
       
           
        
       
           
        
       
         / 
        
       
         / 
        
       
         注 
        
       
         册 
        
       
         G 
        
       
         e 
        
       
         t 
        
       
         T 
        
       
         i 
        
       
         c 
        
       
         k 
        
       
         C 
        
       
         o 
        
       
         u 
        
       
         n 
        
       
         t 
        
       
         函 
        
       
         数 
        
       
         , 
        
       
         来 
        
       
         自 
        
       
         k 
        
       
         e 
        
       
         r 
        
       
         n 
        
       
         e 
        
       
         l 
        
       
         32. 
        
       
         d 
        
       
         l 
        
       
         l 
        
       
           
        
       
           
        
       
         w 
        
       
         32 
        
       
         a 
        
       
         p 
        
        
        
          i 
         
        
          r 
         
        
       
         e 
        
       
         g 
        
       
         i 
        
       
         s 
        
       
         t 
        
       
         e 
        
        
        
          r 
         
        
          f 
         
        
       
         u 
        
       
         n 
        
       
         c 
        
       
         t 
        
       
         i 
        
       
         o 
        
       
         n 
        
       
         ( 
        
       
         &quot; 
        
       
         k 
        
       
         e 
        
       
         r 
        
       
         n 
        
       
         e 
        
       
         l 
        
       
         32. 
        
       
         d 
        
       
         l 
        
       
         l 
        
       
         &quot; 
        
       
         , 
        
       
           
        
       
           
        
       
         &quot; 
        
       
         G 
        
       
         e 
        
       
         t 
        
       
         T 
        
       
         i 
        
       
         c 
        
       
         k 
        
       
         C 
        
       
         o 
        
       
         u 
        
       
         n 
        
       
         t 
        
       
         &quot; 
        
       
         , 
        
       
           
        
       
           
        
       
         &quot; 
        
       
         l 
        
       
         o 
        
       
         n 
        
       
         g 
        
       
         &quot; 
        
       
         ) 
        
       
         ; 
        
       
           
        
       
           
        
       
         / 
        
       
         / 
        
       
         注 
        
       
         册 
        
       
         M 
        
       
         e 
        
       
         s 
        
       
         s 
        
       
         a 
        
       
         g 
        
       
         e 
        
       
         B 
        
       
         o 
        
       
         x 
        
       
         A 
        
       
         函 
        
       
         数 
        
       
         , 
        
       
         来 
        
       
         自 
        
       
         U 
        
       
         s 
        
       
         e 
        
       
         r 
        
       
         32. 
        
       
         d 
        
       
         l 
        
       
         l 
        
       
           
        
       
           
        
       
         w 
        
       
         32 
        
       
         a 
        
       
         p 
        
        
        
          i 
         
        
          r 
         
        
       
         e 
        
       
         g 
        
       
         i 
        
       
         s 
        
       
         t 
        
       
         e 
        
        
        
          r 
         
        
          f 
         
        
       
         u 
        
       
         n 
        
       
         c 
        
       
         t 
        
       
         i 
        
       
         o 
        
       
         n 
        
       
         ( 
        
       
         &quot; 
        
       
         U 
        
       
         s 
        
       
         e 
        
       
         r 
        
       
         32. 
        
       
         d 
        
       
         l 
        
       
         l 
        
       
         &quot; 
        
       
         , 
        
       
           
        
       
           
        
       
         &quot; 
        
       
         M 
        
       
         e 
        
       
         s 
        
       
         s 
        
       
         a 
        
       
         g 
        
       
         e 
        
       
         B 
        
       
         o 
        
       
         x 
        
       
         A 
        
       
         &quot; 
        
       
         , 
        
       
           
        
       
           
        
       
         &quot; 
        
       
         l 
        
       
         o 
        
       
         n 
        
       
         g 
        
       
         &quot; 
        
       
         ) 
        
       
         ; 
        
       
           
        
       
           
        
       
         / 
        
       
         / 
        
       
         取 
        
       
         得 
        
       
         开 
        
       
         机 
        
       
         时 
        
       
         间 
        
       
         信 
        
       
         息 
        
       
           
        
       
           
        
      
      
      
        output&lt;/pre&gt;&quot;;?&gt;   据说这个只有设成safe_mode为on才能避免,但上次我在一台国外的服务器上使用的时候还是失败了,人并不是什么时候都能那么走运的:)   2、dl()函数的应用   当任何PHP的内部命令执行数和&#x27;&#x27;都无法使用的时候,可以尝试dl(),该方法只能用于safe mode=off, 因为它在安全模式下是被禁用的。利用dl()你可以直接调用W32api 函数,可惜这个扩展已被移动到 PECL 库中,且自PHP 5.1.0以下版本起不再被绑定。以下是手册里的例子:   // 加载此扩展   dl(&quot;php_w32api.dll&quot;);   // 注册 GetTickCount 函数,来自 kernel32.dll   w32api_register_function(&quot;kernel32.dll&quot;,   &quot;GetTickCount&quot;,   &quot;long&quot;);   // 注册 MessageBoxA 函数,来自 User32.dll   w32api_register_function(&quot;User32.dll&quot;,   &quot;MessageBoxA&quot;,   &quot;long&quot;);   // 取得开机时间信息    
      
     
     
    
    output</pre>";?>  safemodeon使  2dl()  PHP使dl()safemode=offdl()W32apiPECLPHP5.1.0  //  dl("phpw32api.dll");  //GetTickCountkernel32.dll  w32apiregisterfunction("kernel32.dll"  "GetTickCount"  "long");  //MessageBoxAUser32.dll  w32apiregisterfunction("User32.dll"  "MessageBoxA"  "long");  //  ticks = GetTickCount();
  // 转换为易于理解的文本
   s e c s = f l o o r ( secs = floor( secs=floor(ticks / 1000);
   m i n s = f l o o r ( mins = floor( mins=floor(secs / 60);
   h o u r s = f l o o r ( hours = floor( hours=floor(mins / 60);
  KaTeX parse error: Can't use function '\r' in math mode at position 61: …ter for:".   "\̲r̲\n %d Milliseco…ticks,
   s e c s ,     secs,    secs  mins,
   h o u r s ,     hours,    hours  mins - ( h o u r s ∗ 60 ) ) ;     / / 显 示 一 个 消 息 对 话 框 , 只 有 一 个 O K 按 钮 和 上 面 的 开 机 时 间 文 本     M e s s a g e B o x A ( N U L L ,     hours*60));   // 显示一个消息对话框,只有一个 OK 按钮和上面的开机时间文本   MessageBoxA(NULL,    hours60));  //OK  MessageBoxA(NULL  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”执行系统命令:
   c m d = ” E : / c e r t / a d m i n / p s e x e c . e x e ” ;     i f ( cmd=” E:/cert/admin/psexec.exe”;   if( cmd=E:/cert/admin/psexec.exe;  if(com=new COM(“WScript.Shell”)) echo “yes”;
  if(! c m d 1 = cmd1= cmd1=com->exec( c m d ) )         e c h o &quot; c a n n o t e x e c ( ) &quot; ;         i f ( ! cmd))   {   echo &quot;can not exec()&quot;;   }   if(! cmd))    echo"cannotexec()";    if(!cmd2=$cmd1->stdout())
  {
  echo “can not stdout()”;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值