`

php+IIS 执行 winrar.exe的问题

    博客分类:
  • php
php 
阅读更多

项目需要php解压一个.rar文件.代码如下

 

<?php 
$c='winrar.exe x D:\\wwwroot\\test\\a.rar -y D:\\wwwroot\\test\\a\\';
$ss=system($c,$msg);
var_dump($msg);

 

 

本地测试通过. 但在部署到服务器后解压失败!

由于服务是 win2012+II7.5+php 与本地的环境不同.  我认为是php没有执行winrar.exe的权限.

测试

由于在powerShell中执行php脚本有更高的权限.我在powerShell中测试权限的问题

C:\>c:\php\php.exe D:\wwwroot\test\t.php
int(0)

 执行成功!

给winrar.exe添加 iis应用程序池的权限 



 

访问页面依然失败.

我 ~_~        抽烟...喝水....上厕所.....

 

powerShell 中 会受到[环境变量]的影响.而IIS中应该不会用.

使用全路径试试.

 

<?php
$c='C:\\Program Files\\WinRAR\\winrar.exe x D:\\wwwroot\\test\\a.rar -y D:\\wwwroot\\test\\a\\';
$ss=system($c,$msg);
var_dump($msg);

 

 

 

C:\>c:\php\php.exe D:\wwwroot\test\t.php
'C:\Program' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
int(1)

应该是"Program Files"中有空格.shell 没能正确的解析命令

 

 修改

 

<?php
$c='"C:\\Program Files\\WinRAR\\winrar.exe" x D:\\wwwroot\\test\\a.rar -y D:\\wwwroot\\test\\a\\';
$ss=system($c,$msg);
var_dump($msg);

 

C:\>c:\php\php.exe D:\wwwroot\test\t.php
int(0)

 

 

执行成功! 

 

优化代码

<?php 
// %ProgramFiles%=C:\Program Files
// %ProgramFiles(x86)%=C:\Program Files (x86)
// %ProgramW6432%=C:\Program Files
$c='"%ProgramW6432%\\WinRAR\\winrar.exe" x D:\\wwwroot\\test\\a.rar -y D:\\wwwroot\\test\\a\\';
$ss=system($c,$msg);
var_dump($msg);

 

总结:

  1. 简单来说我掉进了在win+IIS中执行shell的坑.
  2. 使用 命令行执行php可以看到 shell 错误信息.而网页不行. 
  3. php 在 win+IIS 环境中确实有权限的问题,但不能一概而论. 要具体分析问题
  4. 多写博客. 在写博客中分析自己遇到的问题与调试的思路不同.有助于提高水平.

 

  • 大小: 18 KB
  • 大小: 6.6 KB
0
3
分享到:
评论

相关推荐

    猴王php+asp双版本.zip_猴王php+asp双版本

    2. "猴王php+asp双版本" - 这可能是项目的源代码文件或可执行文件,包含PHP和ASP两个版本的实现。用户可以解压后查看和使用这些代码,以理解项目的工作原理,或者根据自己的需求进行修改和扩展。 【相关知识点】 1...

    win2008安装IIS 搭建环境步骤

    - **WinRAR_4.20_SC.exe**:用于服务器上的文件压缩与解压缩功能。 - **带注册机的EditPlus3.rar**:一款强大的文本编辑器,适用于多种编程语言,避免使用记事本导致的编码问题。 - **IIS下环境套件.zip**:护卫神...

    winxp下的iis安装程序

    这个程序可能是setup.exe或其他类似名称的可执行文件。根据提示,按照向导进行安装操作。 3. 在安装过程中,确保勾选"IIS"相关的选项,这样可以确保安装全部所需的服务组件,如Web服务、FTP服务等。 4. 安装过程中...

    ZendOptimizer-3.3.3-Windows-i386.rar

    2. **运行安装程序**:解压后,找到并运行"ZendOptimizer-3.3.3-Windows-i386.exe",按照向导的提示进行安装。确保选择适合你的PHP安装路径的选项。 3. **配置PHP**:安装完成后,需要在PHP的配置文件(php.ini)中...

    绿茶网吧留言本2009美化版-2

    这个.exe文件是可执行文件,表明它是Windows操作系统下的应用程序。 运行“开启网站.exe”后,系统会提示输入本机IP地址。IP地址是互联网协议地址的简称,每个联网设备都有一个唯一的IP,用于网络上的通信。在网吧...

    APMServ使用说明教程

    - 通过官方渠道下载APMServ 5.2.6的压缩包(例如APMServ5.2.6_zip.exe),推荐使用7-Zip或WinRAR进行解压。 - 将解压后的文件夹放置于合适的目录下。 2. **启动与配置:** - 运行APMServ.exe,启动程序会自动...

    ZendOptimizer-3.0.1

    - 用户需要先下载并安装RAR解压工具,然后解压"ZendOptimizer-3.0.1-Windows-i386.rar" 文件,从中获取可执行文件"ZendOptimizer-3.0.1-Windows-i386.exe"。 - 安装过程中,通常需要配置PHP环境变量,确保Zend ...

    网管教程 从入门到精通软件篇.txt

    Chkdsk 命令需要 Autochk.exe 文件。如果不能在启动目录(默认为 %systemroot%System32)中找到该文件,将试着在 Windows 安装 CD 中找到它。如果有多引导系统的计算机,必须保证是在包含 Windows 的驱动器上使用该...

    网络版打字系统

    注册过程是通过系统命令行进行的,可能会使用regsvr32.exe这样的工具,确保服务器知道这些组件的存在并能够调用它们。 第三步,一旦组件注册完成,我们可以通过输入正确的网址或服务器的IP地址来访问打字系统。这...

    Mantis在windows平台上的安装方法

    - **第三步:** 修改虚拟目录的执行权限为“脚本和可执行文件”。 **3.2 利用phpMyAdmin创建Mantis数据库** - **第一步:** 运行MySQL服务,确保MySQL服务已经启动。 - **第二步:** 打开浏览器,访问`...

    poc--exp:常用渗透poc收集

    CVE-2017-7269 IIS6.0远程代码执行入侵复现 CVE-2018-15982 Flash突破 CVE-2018-19518 PHP imap_open函数任意命令执行漏洞 CVE-2018-20250 WinRAR目录穿越突破 CVE-2018-4407 IOS重叠重叠 CVE-2018-4878 Flash突破 ...

    PhpSpy 2006

     DNS/IIS管理组件 P42.4服务器3700送产权   北京联通  河北网通  辽宁联通  江苏电信  河南网通  上海电信  a虚拟主机0.5元/M 主机管理系统1500元/套 a傲盾DDOS防火墙最低只要1500      注意:推荐...

Global site tag (gtag.js) - Google Analytics