easyphp wp

一、WEB

1.easyphp

        打开连接,发现一段php代码,考察代码审计能力

        做这种题得一步一步来,先大概浏览一遍,发现需要通过get传入a,b,c的值,使key1和key2的值均变为1,然后就会打印flag

        从第一块开始

47d14a81cd73400e8275bd3308e05adf.png

        第一行if要求(函数用法可以参考链接)

        1. a非空        ​​​PHP isset() 函数 | 菜鸟教程

        2. a的整数值大于6000000        PHP intval() 函数 | 菜鸟教程

        3. a的字符长度不能超过3        PHP strlen() 函数 | 菜鸟教程

        在看intval函数时发现intval(1e10)的值为10000000000,但是要求字符长度不能超过3,所以在这里尝试1e9

        当将a=1e9传参后发现页面底部发生了变化,也就是说a的值可以为1e9

d997cc39ea764b2ca08883710fa85284.png

        第二行if要求

        1. b非空

        2. b的md5值的最后6个字符串为8b184b        PHP substr() 函数 | 菜鸟教程

        这里可以写一个脚本爆破一下

<?php

while(true){

$str = bin2hex(random_bytes(5));
$hash = md5($str);

    if(substr($hash,-6) === '8b184b'){
        echo $str;
        echo '/';
        echo $hash;
        echo '/';
    }
}
?>

        运行得到一组值ae4b0747b3---a133827fb9e1e16341a32056d98b184b

        将b=ae4b0747b3传参,页面发生变化,下一步就是c的值了49907bdd8603491ca43869fedf5bc563.png

        第二块:

841baea253494bfa8bf5b834543aa2e7.png

        首先第一行将传入的参数进行 JSON 解码且要求是数组

        第一个if要求

        1. c为数组        PHP is_array() 函数 | 菜鸟教程

        2. c的m键值为非数字        PHP is_numeric() 函数 | 菜鸟教程

        3. c的m键值要大于2022

        通过了解is_numeric() 函数发现 123a不算数字,返回为false,在加上逻辑非,返回为true

        在进行比较时123a会被转换成123与2022进行比较

        那这里尝试传参 c={“m”:"2023a"},页面再次发生变化

0b3db29cbb3b475b8ba62b155a6a59e0.png

        第二个if要求:

        1. c为数组

        2. c的n键值中元素的数目等于2        PHP count() 函数 | 菜鸟教程

        3. 并且第一个元素是一个数组类型

        后面这段参考文章攻防世界web新手区easyphp题解writeup_$c != 1024"+"intval($c) == 1024-CSDN博客

a7575cf37114455cb201b287a751a0b4.png

        所以此处传参c={"n":[[0,1],0]},得到flag

f7755cbed8204b6abed2c5df399af212.png

        payload: 61.147.171.105:56650/?a=1e9&b=ae4b0747b3&c={"m":"2023a","n":[[0,1],0]}

        cyberpeace{e574b575bf273066ce7529b0334de337}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值