首页 > 其他分享 >[鹤城杯 2021]EasyP

[鹤城杯 2021]EasyP

时间:2023-10-18 20:23:43浏览次数:36  
标签:鹤城 index EasyP bar foo basename SERVER 2021 php

<?php
include 'utils.php';
if (isset($_POST['guess'])) {
    $guess = (string) $_POST['guess'];
    if ($guess === $secret) {
        $message = 'Congratulations! The flag is: ' . $flag;
    } else {
        $message = 'Wrong. Try Again';
    }
}
if (preg_match('/utils\.php\/*$/i', $_SERVER['PHP_SELF'])) {
    exit("hacker :)");
}
if (preg_match('/show_source/', $_SERVER['REQUEST_URI'])){
    exit("hacker :)");
}
if (isset($_GET['show_source'])) {
    highlight_file(basename($_SERVER['PHP_SELF']));
    exit();
}else{
    show_source(__FILE__);
}
?> 

 

$_SERVER['PHP_SELF'] 当前脚本的路径

$_SERVER['REQUEST_URI'] 当前网址

比如http://example.com/foo/bar.php?cmd=1

$_SERVER['PHP_SELF']会得到foo/bar.php

$_SERVER['REQUEST_URI'] 会得到foo/bar.php?cmd=1

basename()会获取文件路径中的文件名

比如basename(foo/bar.php)会得到bar.php,也就是最后一个 /后面的东西

但是basename()会自动抛弃文件名开头非ASCII字符

比如basename(哈哈index.php)会返回index.php

拓展一下:

 

  • dirname - 返回路径中的目录部分
  • pathinfo() - 返回文件路径的信息

 

POST传参没有什么用,直接看下面

从下往上看,先要存在show_source,但是上面有过滤了这个参数

在php中如果变量名不否合命名规则,会将第一个不否合的字符用_替代,比如e.val会变成e_val

其中[,+,(点),(空格)都可以

对于过滤了utils我们可以在其前面添加一个index.php来绕过

因为index.php/utils.php会返回index.php然后经过basename()处理就可以访问到utils.php文件

所以构造palyload:

index.php/utils.php/卧槽?show+source=1

 

 

标签:鹤城,index,EasyP,bar,foo,basename,SERVER,2021,php
From: https://www.cnblogs.com/lcjingyi/p/17773244.html

相关文章

  • 【专题】2021婚房置业报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • 【专题】2021当代青年婚恋状态研究报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • 【专题】2021年中国当代不婚主义白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=33848随着10月的到来,我们已经踏入了年末冲刺阶段,是否准备好应对家庭的盘问了?工作稳定、挣多少钱、买房与否,最后总是绕不开催婚话题。阅读原文,获取专题报告合集全文,解锁文末47份婚恋相关行业研究报告,加入我们的同城群,和志同道合的小伙伴们一起寻找爱......
  • 关于流媒体播放器EasyPlayer和EasyPlayerPro的介绍以及其区别
    EasyPlayer是一款流媒体播放器系列项目,它支持多种流媒体协议的播放,包括但不限于RTSP、RTMP、HTTP、HLS、UDP、RTP、File等。除此之外,EasyPlayer还支持本地文件播放和多种功能特性,包括本地抓拍、本地录像、播放旋转、多屏播放、倍数播放等。EasyPlayer核心基于ffmpeg,稳定、......
  • 题解 P7468【[NOI Online 2021 提高组] 愤怒的小 N】
    题解P7468【[NOIOnline2021提高组]愤怒的小N】problem首先是有一个字符串\(S=\texttt{"0"}\),做无限次“将\(S\)的每一位取反接在\(S\)后面”的操作,形如\(S=0110100110010110\cdots\)。另外给一个\(k-1\)次多项式\(f\),求\(\sum_{i=0}^{n-1}S_if(i).\)\(n\leq......
  • USACO 2021.12 Platinum Paired Up
    洛谷传送门LOJ传送门如果\(T=1\),可以把重量全部取相反数转化成\(T=2\)。接下来只考虑\(T=2\)的情况。下文的\(m\)代表原题中的\(K\)。设第\(i\)个G牛的位置和重量分别为\(a_{0,i},b_{0,i}\),第\(i\)个H牛的位置和重量分别为\(a_{1,i},b_{1,i}\)......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》 第五周学习总结
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 2023-2024-1 20211211 《信息安全系统设计与实现(上)》第11章
    一、EXT2文件系统Linux一直将EXT2作为默认文件系统。EXT3是EXT2的扩展。EXT3中增加的主要内容是一个日志文件,他将文件系统的变更记录在日志中。日志可在文件系统崩溃时更快地从错误中恢复。没有错误的EXT3文件系统与EXT2文件系统相同。EXT3的最新扩展时EXT4。EXT4的主要变化是磁......
  • 2023-2024学年 20213423 《计算机基础与程序设计》第三周学习总结
    第三章是《计算机科学概论》中一个非常重要的章节,它涵盖了计算机的内部结构和工作原理。通过学习这一章,我更深入地了解了计算机是如何运行的,以及其中涉及到的各种关键组件和概念。以下是我学习这一章的一些心得体会:首先,我学到了计算机的基本组成部分,包括中央处理单元(CPU)、内存、......
  • 20211314王艺达学习笔记5
    第十一章EXT2文件系统一.梗概多年来,Linux一直使用EXT2(Card等1995)作为默认文件系统。EXT3(EXT3,14)是EXT2的扩展。EXT3中增加的主要内容是一个日志文件,它将文件系统的变更记录在日志中。日志可在文件系统崩溃时更快地从错误中恢复。没有错误的EXT3文件系统与EXT2文件......