zoukankan      html  css  js  c++  java
  • php文件包含漏洞(input与filter)

    php://input

    php://input可以读取没有处理过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php://input不能用于enctype=multipart/form-data。

    php://filter协议

    协议语法:

    php://filter:/<action>=<name>

    php://filter 的 参数列表

    read        读取
    write        写入
    resource    数据来源(必须的)

    read的参数

    string.strip_tags                 将数据流中的所有html标签清除
    string.toupper                    将数据流中的内容转换为大写
    string.tolower                     将数据流中的内容转换为小写
    convert.base64-encode     将数据流中的内容转换为base64编码
    convert.base64-decode     与上面对应解码

    漏洞应用

    以i春秋上一道文件包含的CTF题为例:(来自rgrgrgrgrggrgrg大佬的Writeup

    1 <?php 
    2 show_source(__FILE__);
    3 if(isset($_REQUEST['path'])){
    4     include($_REQUEST['path']);
    5 }else{
    6     include('phpinfo.php');
    7 }

    path能以get与post形式传入,这里我们在url后加上?path=php://input,再以post形式传入ls指令,成功执行了指令。

    于是利用filter协议来读取dle345aae.php的内容,由于php文件不能直接读取,于是采用base64编码方式读取,成功得到一串base64编码,拿去一解就是flag啦。

  • 相关阅读:
    Docker安装
    MVC-HtmlHelper简单总结
    D3.js
    分布式事务seata
    彻底搞懂JAVA路径问题
    idea 代码生成
    自动生成 serialVersionUID 的设置
    狂神说SSM框架系列连载
    缓存穿透、缓存击穿、缓存雪崩区别和解决方案
    多线程
  • 原文地址:https://www.cnblogs.com/Ragd0ll/p/8519690.html
Copyright © 2011-2022 走看看