zoukankan      html  css  js  c++  java
  • [ACTF2020 新生赛]BackupFile

    0x00

    打开WEB界面

    提示找到备份,进行跑目录,备份命名一般为www.*,backup,*.bak
    经过跑目录我得到的结果是/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!";
    }
    

    进行代码审计,要想得到flag,我们需要满足如下:

    • key的值等于str的值
    • key为整数

    我们可以看到如下,使用的是 == 而不是 ===

        if($key == $str) {
            echo $flag;
        }
    ## php为弱类型语言使用==比较字符串和整型时,会将字符串转化成整型,如上的字符串在转化成整型时只保留整数部分123后面的字符串全部省略
    

    所以这里我们只需要构造如下payload:

    /index.php?key=123
    

    得到结果

    0x01 总结

    主要考察了如下:

    • 1.常见备份的命名以及备份文件的查找
    • 2.php弱类型语言特点
    php为弱类型语言使用==比较字符串和整型时,会将字符串转化成整型
    如果字符串为数字开头例如 123sadasd 则转化为 123
    如果字符串为字母开头例如 a23sadasd 则转化为 0
    
  • 相关阅读:
    phpStudy The requested URL /web/index.php was not found on this server
    python yield 理解与用法
    python 高阶函数之 map
    python 高阶函数之 reduce
    java extends和implements区别
    SpringMVC中使用Interceptor拦截器顺序
    SpringMVC 拦截器使用说明
    java session创建与获取
    跨域解决方案
    nrm -- 一键切换npm源
  • 原文地址:https://www.cnblogs.com/Wuser/p/13632882.html
Copyright © 2011-2022 走看看