BUUCTF-Web-BackupFile

BUUCTF-Web-BackupFile

题目链接

考察内容: PHP弱类型、敏感文件泄露

解题思路:
根据题目给出的说尽量找到源文件,再根据题目名字应该是个备份文件,做题老套路…查看源码、用dir扫一下网站,果然发现了index.php.bak文件发现是PHP的代码,于是进行审计。

源码解读 :

<?php
include_once "flag.php";   //验证是否包含这个文件

if(isset($_GET['key'])) {       //检测变量是否已设置并且是否为非空
    $key = $_GET['key'];        
    if(!is_numeric($key)) {     //如果$key不是数字或数字字符串 输出exit
        exit("Just num!");
    }
    $key = intval($key);		//将$key转换为整数
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
    if($key == $str) {
        echo $flag;
    }
}
else {
    echo "Try to find out source file!";
}

第一个if用只需用key传一个非空的值即可满足,然后第二个if,输数字,就不会触发exit, 所以,str在和key进行比较的时候,str会转换为123 。(= = 为弱比较,整数和字符串类型相比较时。会先将字符串转化为整数然后再进行比较。比如a=123和b=123abc进行==比较时。则b只会截取前面的整数部分,即b转化成123。)

所以这里在这里传一个参数?key=123&str=123就可以拿到flag

构造payload: http://f7198eb8-6c9b-49c6-bcbb-7802d90e71de.node4.buuoj.cn:81/?key=123&str=123
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Acorns01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值