您的位置 首页 php

PHP命令执行的小tips

Php命令执行的小tips

首先看一下源码

最近,看到一个cms的源码,大概让我简化成上面的这个样子。大家看一下如何执行命令?

首先exec是执行系统命令的函数,我想到的是创建一个文件,echo 123 >> f:\2344.txt

123>>f:\23444.txt

看到执行的结果创建文件内容为0字节,证明文件创建成功,能执行代码。但是为什么这里创建的文件是0?

构造url,最终的是这样使用exec(c:\phpsstecho 123>>f:\\23444.txt)

很明显这里的c:\php sst根本不是系统命名,但是为什么会创建成功。

使用系统命令来试一下我们exec的内容,大家可以看到, windows 系统好像是指识别自己能够识别的指令。好,我们来测试一下,w>>f:\7777.txt ,即使前面的是错误的东西但是windows会把>>当做自己的命令执行,前面的东西是错误,刚好只会创建一个0字节的文件。

接下来就是看看windows命令执行的连接符号

& 例如a&b,就是不管a是否执行成功,b就会紧接着执行,也就是说或的关系a|b都执行。

&& 例如a&&b,就是前面执失败就不会执行后面的

|| 例如a||b,当a执行失败时,才会执行b

下面我们来构造一下,当然就会选择||或者&,首先看一下||,创建文成功,并且写入成功。

?AA=|| echo 123 >> f:\8888.txt,创建文件并写入成功

接下来告诉大家一个小tips,在Windows命令中使用^< ^>来输出<>。

||%20echo%20^%3C?php%20phpinfo()?^%3E%20%3E%3Ef:\ phpstudy \www\12222.php

输出PHPinfo,已利用成功。

文章来源:智云一二三科技

文章标题:PHP命令执行的小tips

文章地址:https://www.zhihuclub.com/153074.shtml

关于作者: 智云科技

热门文章

网站地图