zoukankan      html  css  js  c++  java
  • ISCC2019-web1

    明显是代码审计

    <?php
    error_reporting(0);
    require 'flag.php';
    $value = $_GET['value'];
    $password = $_GET['password'];
    $username = '';

    for ($i = 0; $i < count($value); ++$i) {
        if ($value[$i] > 32 && $value[$i] < 127) unset($value);
        else $username .= chr($value[$i]);
        if ($username == 'w3lc0me_To_ISCC2019' && intval($password) < 2333 && intval($password + 1) > 2333) {
            echo 'Hello '.$username.'!', '<br>', PHP_EOL;
            echo $flag, '<hr>';
        }
    }

    highlight_file(__FILE__);

    Get方法传参,value的值不能在32到127之间,那怎么可能等于w3lc0me_To_ISCC2019。经查资料,得知chr()函数是除以256取余,那我们将w3lc0me_To_ISCC2019转换成ascii然后加256就OK了。

    然后看password,GET的password的值是字符串,intval('十六进制')会返回0,但是intval('16进制+1'),就会将16进制字符串强制转换为数型。所以就很容易绕过了。

  • 相关阅读:
    在线考试————随机出题
    HTTP协议
    团队
    做作业
    图书馆管理说明书性能
    关于敏捷开发的学习
    运行环境
    图书馆管理系统说明书
    性能(2)
    作业
  • 原文地址:https://www.cnblogs.com/whitehawk/p/10817028.html
Copyright © 2011-2022 走看看