php木马

php木马

最近参加了一次网络攻防大赛的培训。学到了不少知识,挺好的。

php的一句话木马

上面这一句话就是一个php的木马。当然,木马的前提是要将这个php文件上传到你的web服务器中,并且可通过url访问才行。有很多web漏洞可能导致被上传木马,包括上传文件漏洞、sql漏洞等等。

解释一下上面这一句话:

@符号,是php的错误控制符,放在任何表达式之前,该表达式可能产生的任何错误信息都被忽略掉。可以放可不放。

eval(code_str), eval函数把字符串参数code_str当作php代码来解析执行。

$_GET[‘cmd’]就很好解释了,就是获取url中的cmd查询字符串。

所以合起来的意思就是执行用户在url查询字符串cmd输入的语句。这个语句可以是任意合法的php语句。phpinfo(),exit()(加exit是因为有时候这一句话木马是注入到别的php文件里面的,为防止该文件的其他php语句打乱输出结果,直接执行完想要的命令就终止运行。)还有一个很重要的php语句system(cmd),可以执行系统指令,并输出结果。

所以,实用http://domain/cmdget.php?cmd=system(“ls -tl”);exit();就能得到在web服务器ls -tl命令同样的结果。这样就叫getShell了。

由于菜刀工具会调用php7中已经剔除的函数set_magic_quotes_runtime,所以如果将上面的木马放在php7服务器上用菜刀连接的话,会报500内部错误。为了绕开这个错误,可以简单的在木马脚本上伪造一个set_magic_quotes_runtime函数。

 

不死马

所谓的不死马,就是先上传一个“木马生成器”,然后通过url访问一次该木马生成器,使其常驻内存并保证木马文件存在。

ps:其实后面想想,在木马中加入token其实是没啥鸟用的。因为我们访问木马文件时候,token值是在url中明文发送过去的,如果对方有流量日志,那么直接就能看到我们的token。那么就能复用我们的木马脚本来攻击其他被种马的服务器,窃取我们的“劳动果实”。

要想让被种马的无法流量分析来盗用我们的不死马,有一个简单的方法就是每隔一小段时间(1分钟或更短)变换木马文件名,在对方分析出木马文件之前,旧的文件名已经失效了。

随机变换不死马文件名

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注