简介
很多人拿到网站的权限后,不知道如何把权限持久化
其实大多数人拿到权限后,都会在网站中留一个后门
如果后门没有被杀软扫到,那么这个后门存活时间相对不免杀后门肯定会大大增加
因为我书读得少,所以我单从代码层来讲如何权限持久化:)
一般的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中可用
本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Note/436.html