[Zer0pts2020]Can you guess it?

查看源码:

<?php
include 'config.php'; // FLAG is defined in config.phpif (preg_match('/config\.php\/*$/i', $_SERVER['PHP_SELF'])) {exit("I don't know what you are thinking, but I won't let you read it :)");
}if (isset($_GET['source'])) {highlight_file(basename($_SERVER['PHP_SELF']));exit();
}$secret = bin2hex(random_bytes(64));
if (isset($_POST['guess'])) {$guess = (string) $_POST['guess'];if (hash_equals($secret, $guess)) {$message = 'Congratulations! The flag is: ' . FLAG;} else {$message = 'Wrong.';}
}
?>

提示了flag在config.php中

$_SERVER用于获取当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://c.biancheng.net/test.php/foo.bar 的脚本中使用 $_SERVER[‘PHP_SELF’]将得到 /test.php/foo.bar

如果url是:http://xxx/index.php/a.php/a/b/c/d/?a=1
$_SERVER[‘PHP_SELF’]的值就是index.php/a.php/a/b/c/d/ (忽略传参)

第一个if做了正则的判断,判断$_SERVER获取到的值是否以config.php/* 结尾。相当于要求config.php/后不能有自读,如果是则退出。

结合提示,猜测我们需要绕过限制,读取到config.php

第二个if如果传入了source参数,就highlight_file 高亮显示$_SERVER中经过basename后提取到的文件

绕过正则可以使用不存在于ascii码表中的字符,比如中文符号?、《》、中文等,例如index.php/config.php/??source(第一个为中文问号),此时正则就会失效,SERVER获取到的就是index.php/config.php(忽略传参),经过basenmae后就是config.php,这样既可以绕过正则匹配,也可以绕过basename的过滤

[Zer0pts2020]Can you guess it?相关推荐

  1. [Zer0pts2020]ROR

    [Zer0pts2020]ROR 题目 import random from secret import flagror = lambda x, l, b: (x >> l) | ((x ...

  2. re -12 buuctf [Zer0pts2020]easy strcmp

    [Zer0pts2020]easy strcmp 前话:这题要用到ida64位远程调试先记录一下配置方法,因为本人使用的是ida7.6版本差异可能导致问题. application与input fil ...

  3. BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过

    BUUCTF之[Zer0pts2020]Can you guess it? basename函数绕过 题目 后台PHP源码: <?php include 'config.php'; // FLA ...

  4. [buuctf][Zer0pts2020]easy strcmp

    [Zer0pts2020]easy strcmp 思路 脚本 思路 第一步还是先查壳 放在linux中运行一下,发现竟然没有任何输入的位置. 放入ida64中查看,因为这个是一个64位的可执行文件,有 ...

  5. [Zer0pts2020]easy strcmp

    是elf格式的64位程序,无壳 int64指的是64位有符号整型 fastcall是一种函数调用规定 按理来说main函数的写法上是只能有2个参数的,不知道为什么这里有3个 初看main函数的逻辑是输 ...

  6. 每日一题 [Zer0pts2020]musicblog

    进去一个登陆注册,先随便注册一个,然后进入以下页面 New post,看到他说都会replace radio,例如我们在我们服务器传一个MP3文件,那么Content内填[[url/xxx.mp3]] ...

  7. [Zer0pts2020]easy strcmp细节探究

    这道题大多数的wp不知道这个程序是怎么跑的. 这道题是由一个知名的日本战队zer0pts出的,还是挺新颖,挺有意思的 总体感知 首先来看看ida里的情景 这就是main函数的所有了,很简单,感觉啥也没 ...

  8. [Zer0pts2020]easy strcmp 分析与加法

    无壳,放入IDA自动跳到main函数 __int64 __fastcall main(int a1, char **a2, char **a3) {if ( a1 > 1 ){if ( !str ...

  9. [BUUCTF][Zer0pts2020]Can you guess it?

    文章目录 前置知识 一些学到的新函数与新变量 新变量属性-PHP_SELF 新php函数-basename basename broken with non-ASCII-chars WP部分 前置知识 ...

最新文章

  1. 037_Dropdown下拉菜单
  2. 2021天翼杯 密码官方wp
  3. 【放置奇兵】封印之地各阵营boss和小怪属性
  4. yelee主题博客四周变透明
  5. vb6 combo根据index显示_彻底搞懂CSS层叠上下文、层叠等级、层叠顺序、z-index
  6. Deskreen – 将电脑屏幕共享到浏览器中,做第二块屏幕[Win/macOS/Linux]
  7. Codeforces ----- Kefa and Dishes [状压dp]
  8. 简易新闻网站NewsWeb-网页抓取
  9. 4.3.5 心跳和协调者的关系
  10. python excel筛选统计_如何用python对excel表格进行筛选
  11. 全国哀悼日 网站灰黑色CSS滤镜代码
  12. 原创科幻短篇《Bug》
  13. Sap2000——Edit Point
  14. java8中switch不能,switch 语句
  15. Tmw去掉名字服务器显示,7.1WOW大秘境福利:老司机分享溢出与死疽TMW监视
  16. 六、系统架构 - 高可用架构设计
  17. 2022工作中遇到的问题四
  18. node快速搭建后台
  19. 锐捷ac怎么发现局域网ap_【实战】锐捷AC+AP配置WLAN基本服务系列
  20. 从图像中提取特定颜色区域。

热门文章

  1. 开源项目——小Q聊天机器人V1.0
  2. html 下拉框树,下拉框显示树形菜单
  3. django实现树形菜单
  4. close事件 vue_vue中v-on支持的事件总结
  5. shipyard管理多HOST
  6. Verilog——秒计数器
  7. NP问题,P问题,NPC问题详解—黄宇老师《算法分析》笔记
  8. 6.2 Characteristic Values
  9. nRF52832 GATT 自定义Service/Characteristic
  10. 紫光集团或入股武汉新芯 赵伟国将任董事长