从代码层来讲如何让PHP后门权限持久化
时间:2016-12-17 08:49 来源:转载 作者:wd0g 点击:次
简介很多人拿到网站的权限后,不知道如何把权限持久化 其实大多数人拿到权限后,都会在网站中留一个后门 如果后门没有被杀软扫到,那么这个后门存活时间相对不免杀后门肯定会大大增加 因为我书读得少,所以我单从代码层来讲如何权限持久化:)
一般的PHP后门像这样: 这样(回调函数):
杀软查杀原理一般的杀软查杀木马,都是通过正则表达式来匹配脚本内容 如果匹配出结果,则表示该脚本可能是木马文件
如何让正常代码执行恶意命令看到这段代码你会想到它能执行恶意命令吗? 好吧,正常情况下,这玩意还会报错,执行个毛线的命令… 那非正常情况下呢?
PHP中的全局变量注册开关register_globals:该选项在设置为ON的情况下,会直接把用户request过来打参数注册成全局变量并初始化值为参数对应的值,而且该值能直接在脚本中使用 从php5.3.0起该配置项被废弃,在php5.4.0中移除了该配置项 OK,说了这么多,到底如何上上面原本安全的代码执行命令呢?
设置PHP配置,让原本安全的代码执行命令在php.ini中添加下面的代码: 然后,新建一个脚本文件test.php并写入下面的代码: 然后访问该URL: https://www.test.com/test.php?a=eval&b=phpinfo(); 你会惊奇的发现,页面居然显示了phpinfo的信息 为什么会这样呢?
为什么会这样呢?上文中说道了,如果register_globals设置为ON,将会把用户request过来的参数注册为全局变量,并可直接在脚本中使用 所以我们只要在url中增加参数,php就会自动把参数名设置为变量名,参数值设置为变量值 所以PHP处理上面URL中的参数时,自动创建了变量并赋值: 到最后那段安全的代码会变成下面这样:
最后经过我测试呢,D盾,安全狗这两款杀软都没有查杀到 没有查杀就代表你的后门被发现的时间就长 后门时间长,权限即持久化 对了,因为我懒,所以最近没测试代码是否被杀 不过应该没有被杀 还有,该配置项只在PHP版本小于5.4.0中可用 (责任编辑:蜗蜗侠) |