【BUUCTF】[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.';}
}
?>
<!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?相关推荐
- 【buuctf】cscctf_2019_qual_babyheap
buuctf[cscctf_2019_qual_babyheap] 今天找了一道100分题目,题目本身并没有那么难 例行检查 64位的程序,保护机制全开,放到IDA中分析 漏洞分析 函数功能很简单,功 ...
- 【BUUCTF】Crypto题解
文章目录 MD5 一眼就解密 Url编码 看我回旋踢 摩丝 password 变异凯撒 Quoted-printable Rabbit 篱笆墙的影子 RSA Alice与Bob 丢失的MD5 RSA ...
- 【BUUCTF】梅花香之苦寒来
0x00 做了几天BUU的题,发现这个题有点儿意思,学了几个工具,顺便写个WP.(参考了这位大佬的WP: BUUCTF 梅花香自苦寒来) 0x01 下载下来一个压缩包,打开是一张图片,先解压,发现 ...
- 【BUUCTF】强网杯 2019随便注1 write up
输入万能密码1' or 1=1# ,判断存在sql注入, SQL注入的万能密码实际上是利用了网址后台的漏洞,打开下面的网址不用密码和账号也可以登录后台. 万能密码原理: 万能密码能够绕过sql检测,在 ...
- 【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 ...
- 【BUUCTF】[MRCTF2020]套娃
思考 题目是套娃,感觉应该是一环一环的走下去,每个问题应该不是很难,按着他的提示做吧. 知识点 substr_count(),用空格或者.或者大写的url编码 preg_mach(),%0a绕过 本地 ...
- 【BUUCTF】[安洵杯 2019]吹着贝斯扫二维码
题目链接:[安洵杯 2019]吹着贝斯扫二维码. 下载压缩包解压得到这么一些文件,可以看到一堆未知类型文件和一个flag.zip 老规矩,把这些没有拓展名的文件用010Editor打开,发现都是jpg ...
- 【BUUCTF】[强网杯 2019]随便注 1
这是一个典型的sql注入题目 知识点: 1.注入点检测 2.万能匹配 3.暴力获得数据表和其属性 4.sql语句的掌握(order by; union select; rename table; al ...
- 【BUUCTF】reverse2
RE的新手题 下载文件,用file命令查看是多少位文件 为64位的文件,放进IDA中,进入main函数中查看. 可以发现main函数中存在flag信息,点进去查看. 显然hacking_for_fun ...
最新文章
- Android sudio Day01-1
- OpenCV 中的三大数据类型( 概述 )
- JavaScript 面向对象实战思想
- Android中基于TCP协议的网络通信之使用Socket进行通信
- ABAP 程序中退出操作(CHECK, EXIT, RETURN, LEAVE PROGRAM...)
- HTML与XHTML的区别
- 字符串属于python有序序列支持双向索引_西交11秋学期《数据结构》考试复习题...
- 元素加了position:absolute则该元素的text-align:center居中失效的解决办法
- Android远程调试的探索与实现
- 浏览器怪异模式和标准模式之间的区别 DTD
- HDP SandBox 安装与初步配置
- 排序算法java 简书_常用的排序算法(Java版)
- chrome frame 在 iframe frameset 下无效 的处理方法
- Github 插件之 Octotree 报错介绍与解决
- Android6.0之AMS启动
- 联想ThinkPad E15 2021款 酷睿版怎么样?测评值得买吗?
- 淘口令api权限申请,赚取佣金第一步
- 智慧城市篇 | 数字孪生智慧排水管网管理平台
- 静态编译qemu_如何用QEMU运行x86 kernel
- 揭开中国人使用计算机互联网的序幕的人,_____发出了中国第一封电子邮件,从此揭开了中国人使用Internet的.._简答题试题答案...