BUUCTF [ACTF2020 新生赛]BackupFile
作者:互联网
- BackupFile,打开网页啥也没有,用dirsearch扫描目录
- 常见的备份文件后缀名有 .git .svn .swp .~ .bak .bash_history
- 得到一个这个文件
- 访问 下载下来得到
<?php
include_once "flag.php";
if(isset($_GET['key'])) {
$key = $_GET['key'];
if(!is_numeric($key)) {
exit("Just num!");
}
$key = intval($key);
$str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
if($key == $str) {
echo $flag;
}
}
else {
echo "Try to find out source file!";
}
- GET类型,先要经过 is_numeric($key) 审查,然后再经过 intval($key) 转换
is_numeric()
:检测变量是否为数字或数字字符串,返回true或者false
intval()
:获取变量的整数值 - 关键:$key == $str
php中有两种比较的符号 == 与 ===
<?php
$a = $b ;
$a===$b ;
?>
=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较
== 在进行比较的时候,会先将字符串类型转化成相同,再比较
如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行
同时弱比较:如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行,在比较时该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。所以直接传入key=123就行
7. 构造payload
http://5281fc14-7a98-4b08-8e21-c602c847e530.node4.buuoj.cn:81/?key=123
8. 得到flag
flag{ef6d9f77-937a-4f9b-9ce8-92a039f12f22}
原文链接:
https://blog.csdn.net/weixin_45674567/article/details/106412484
https://www.cnblogs.com/Mrsm1th/p/6745532.html
标签:ACTF2020,BUUCTF,数字,数值,BackupFile,123,key,字符串,比较 来源: https://www.cnblogs.com/darkcyan/p/15455844.html