网站安全分析:PHP ob_start函数后门分析报告

      站长之家从日志宝安全团队获悉,近日,根据日志宝分析平台的分析数据显示,部分网站的访问日志中存在大量命令执行类后门行为。

      我们与用户取得联系后拿到后门文件代码。此类后门通过PHP的ob_start()函数触发,利用ob_start()函数回调机制调用命令执行类函数并接受黑客远程发送的命令,此类后门代码可以躲避部分常见后门关键字查杀程序,最终以Web服务器权限远程执行任意命令。

      PHP 手册中关于ob_start()函数回调机制的相关说明:

PHP 手册中关于ob_start()函数回调机制的相关说明

      Ob_start()函数后门代码如下:

      后门利用效果如下图:

后门利用效果如下图:

      针对此类后门行为,建议站长们检查网页源代码中是否出现ob_start()函数调用,并检查ob_start()的参数是否是常见的命令执行类函数(system,exec,popen,shell_exec等)或者其他可疑函数调用。

      为了方便站长们检查网站源代码中是否出现可疑后门程序或者危险函数调用,日志宝安全团队编写了一款简易的PHP后门检测小脚本,可以快速方便的帮助站长检测网站文件是否被插入恶意后门代码,源代码和使用方法如下:

#!/usr/bin/php -q
result.log

      程序的分析结果将保存在当前目录下的result.log文件中

set_time_limit(0);
function find($directory)
{
$mydir=dir($directory);
while($file=$mydir->read()){
if((is_dir("$directory/$file"))&&($file!=".")&&($file!=".."))
{
find("$directory/$file");
}
else{
if($file != "." && $file != ".."&&eregi(".php",$file)){
$fd=realpath($directory."/".$file);
$fp = fopen($fd, "r");
$i=0;
while ($buffer = fgets($fp, 4096)) {
$i++; if((eregi("eval\(\\$\_POST",$buffer))||(eregi("system\(",$buffer))||(eregi("exec\(",$buffer))||(eregi("shell_exec\(",$buffer))||(eregi("popen\(",$buffer))||(eregi("phpinfo\(",$buffer))||(eregi("passthru\(",$buffer))||(eregi("proc_open\(",$buffer))||(eregi("phpspy",$buffer))||(eregi("eval\(base64",$buffer))||(eregi("eval\(gzuncompress",$buffer))||(eregi("preg_replace\(\/^\/e,\$",$buffer))||(eregi("preg_replace\(\"\/\^\/e",$buffer))||(eregi("assert\(",$buffer))||(eregi("ob_start\(",$buffer))||(eregi("error_log\(",$buffer))||(eregi("dl\(",$buffer))){
all();
echo "可疑文件路径:".$fd."\r\nLine".$i.":".$buffer."\r\n\r\n";
}
}
fclose($fp);
}
}
}
$mydir->close();
}
function all()
{
static $count = 1;
echo $count;
$count++;
}

find($argv[1]);
?>

      使用日志宝分析日志可以发现绝大部分常见Web后门的可疑访问行为,但是由于PHP语法的松散导致可以利用常规函数实现部分后门行为,比如执行系统命令等,因此也会出现一些遗漏和误报。在开发网站的过程中开发者需要有一定的安全编程意识,注意变量的初始化以及其他逻辑问题,加入一些安全过滤函数等防范措施,从网站本身的代码安全做起,才能起到深度防御的效果。希望广大站长能够通过日志宝分享的安全知识&技巧了解到更多Web安全相关内容,让自己的网站更加稳定、安全的运行。

注明:本安全报告来自日志宝,官方网站www.rizhibao.com

广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

热门教程

  • Z-Blog教程
    Z-Blog教程
    ZBlog教程分享ZBlog安装教程、ZBlog建站教程和ZBlog使用教程等相关教程,包括如何创建...
  • WordPress教程
    WordPress教程
    WordPress教程提供了关于WordPress的基础知识和技巧,包括安装、设置、发布内容、选择主...
  • CSS教程
    CSS教程
    CSS教程提供了关于如何使用CSS来设计和美化网页的基础知识和技巧,包括选择器、样式规则、盒模型、布...
  • 宝塔面板教程
    宝塔面板教程
    宝塔面板教程是一个致力于向用户传授宝塔面板的使用技巧和知识的学习资源,旨在帮助用户快速上手和充分利用...
  • PHP教程
    PHP教程
    PHP教程提供了关于PHP语法、变量、函数、流程控制等概念的详细指导,同时介绍了常见的Web开发技术...

3个月免费VPS

亚马逊云科技

阿里云