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
    
  • 相关阅读:
    Android ListView的使用(三)
    Android GridView的使用页面按钮
    Android ListView的使用(二)
    Android ListView的使用(一)
    Linux 下MongoDb的安装
    Linux使用redis
    JavaWeb之JDBC
    JavaWeb之多语言国际化
    JavaWeb之JSTL标签
    JavaWeb之JSP技术总结
  • 原文地址:https://www.cnblogs.com/Wuser/p/13632882.html
Copyright © 2011-2022 走看看