源码

<?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.';}
}
?>
<!doctype html>
<html lang="en"><head><meta charset="utf-8"><title>Can you guess it?</title></head><body><h1>Can you guess it?</h1><p>If your guess is correct, I'll give you the flag.</p><p><a href="?source">Source</a></p><hr>
<?php if (isset($message)) { ?><p><?= $message ?></p>
<?php } ?><form action="index.php" method="POST"><input type="text" name="guess"><input type="submit"></form></body>
</html>

想要读取文件只能从这段入手(不知道另外一处有没有办法),正则表达式是表示不能以config.php为结尾

if (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();
}

这里学习一个新知识$_SERVER['PHP_SELF']

$_SERVER[‘PHP_SELF’] 表示当前 php 文件相对于网站根目录的位置地址
http://www.5idev.com/php/index.php/test/foo -->/php/index.php/test/foo

接下来是basename
basename
它有个小问题,它会去掉文件名开头的非ASCII值。

With the default locale setting “C”, basename() drops non-ASCII-chars at the beginning of a filename.

PL

/index.php/config.php/%80?source

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

  1. 【buuctf】cscctf_2019_qual_babyheap

    buuctf[cscctf_2019_qual_babyheap] 今天找了一道100分题目,题目本身并没有那么难 例行检查 64位的程序,保护机制全开,放到IDA中分析 漏洞分析 函数功能很简单,功 ...

  2. 【BUUCTF】Crypto题解

    文章目录 MD5 一眼就解密 Url编码 看我回旋踢 摩丝 password 变异凯撒 Quoted-printable Rabbit 篱笆墙的影子 RSA Alice与Bob 丢失的MD5 RSA ...

  3. 【BUUCTF】梅花香之苦寒来

    0x00  做了几天BUU的题,发现这个题有点儿意思,学了几个工具,顺便写个WP.(参考了这位大佬的WP: BUUCTF 梅花香自苦寒来) 0x01  下载下来一个压缩包,打开是一张图片,先解压,发现 ...

  4. 【BUUCTF】强网杯 2019随便注1 write up

    输入万能密码1' or 1=1# ,判断存在sql注入, SQL注入的万能密码实际上是利用了网址后台的漏洞,打开下面的网址不用密码和账号也可以登录后台. 万能密码原理: 万能密码能够绕过sql检测,在 ...

  5. 【BUUCTF】CTF_Crypto 密码学_Quoted-printable(引用可打印)

    Quoted-printable_ 引用可打印 题目 密文:=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6 QP介绍 Quoted-Pri ...

  6. 【BUUCTF】[MRCTF2020]套娃

    思考 题目是套娃,感觉应该是一环一环的走下去,每个问题应该不是很难,按着他的提示做吧. 知识点 substr_count(),用空格或者.或者大写的url编码 preg_mach(),%0a绕过 本地 ...

  7. 【BUUCTF】[安洵杯 2019]吹着贝斯扫二维码

    题目链接:[安洵杯 2019]吹着贝斯扫二维码. 下载压缩包解压得到这么一些文件,可以看到一堆未知类型文件和一个flag.zip 老规矩,把这些没有拓展名的文件用010Editor打开,发现都是jpg ...

  8. 【BUUCTF】[强网杯 2019]随便注 1

    这是一个典型的sql注入题目 知识点: 1.注入点检测 2.万能匹配 3.暴力获得数据表和其属性 4.sql语句的掌握(order by; union select; rename table; al ...

  9. 【BUUCTF】reverse2

    RE的新手题 下载文件,用file命令查看是多少位文件 为64位的文件,放进IDA中,进入main函数中查看. 可以发现main函数中存在flag信息,点进去查看. 显然hacking_for_fun ...

最新文章

  1. Android sudio Day01-1
  2. OpenCV 中的三大数据类型( 概述 )
  3. JavaScript 面向对象实战思想
  4. Android中基于TCP协议的网络通信之使用Socket进行通信
  5. ABAP 程序中退出操作(CHECK, EXIT, RETURN, LEAVE PROGRAM...)
  6. HTML与XHTML的区别
  7. 字符串属于python有序序列支持双向索引_西交11秋学期《数据结构》考试复习题...
  8. 元素加了position:absolute则该元素的text-align:center居中失效的解决办法
  9. Android远程调试的探索与实现
  10. 浏览器怪异模式和标准模式之间的区别 DTD
  11. HDP SandBox 安装与初步配置
  12. 排序算法java 简书_常用的排序算法(Java版)
  13. chrome frame 在 iframe frameset 下无效 的处理方法
  14. Github 插件之 Octotree 报错介绍与解决
  15. Android6.0之AMS启动
  16. 联想ThinkPad E15 2021款 酷睿版怎么样?测评值得买吗?
  17. 淘口令api权限申请,赚取佣金第一步
  18. 智慧城市篇 | 数字孪生智慧排水管网管理平台
  19. 静态编译qemu_如何用QEMU运行x86 kernel
  20. 揭开中国人使用计算机互联网的序幕的人,_____发出了中国第一封电子邮件,从此揭开了中国人使用Internet的.._简答题试题答案...

热门文章

  1. TSU-求最大最小数
  2. 分治法求数组最大最小数
  3. CuraEngine和Cura配置(Ubuntu18.04环境)
  4. 接入高德地图第三方SDK——如何获取API Key
  5. 【lua/aviutl】小型倒计时
  6. 无干扰网络收音机:Radium for Mac
  7. vue使用高德地图关键字搜索功能的实例代码(踩坑经验)
  8. 2023年全国管理类联考英语二真题及解析
  9. 姜小白的python日记day2 变量和循环
  10. 【教程】非常好用!一键彻底关闭Win10自带Windows Defender杀毒软件