web:[MRCTF2020]Ez_bypass

题目

点进题目

调整一下

进行代码审计,先看第一段

复制代码
if(isset($_GET['gg'])&&isset($_GET['id'])) {
    $id=$_GET['id'];
    $gg=$_GET['gg'];
    if (md5($id) === md5($gg) && $id !== $gg) {
        echo 'You got the first step';

get参数传参,后判断md5后的值是否相等,这里为===强等于,可以将参数设置为数组进行绕过,若是双等号弱等于,可以找两个md5加密后开头都是0e的参数进行绕过(会被认为是科学计数法)

构造payload

复制代码
?gg[]=1&id[]=2
复制代码
 if(isset($_POST['passwd'])) {
            $passwd=$_POST['passwd'];
            if (!is_numeric($passwd))
            {
                 if($passwd==1234567)
                 {
                     echo 'Good Job!';
                     highlight_file('flag.php');
                     die('By Retr_0');
                 }
                 else
                 {
                     echo "can you think twice??";
                 }
            }
            else{
                echo 'You can not get it !';
            }

        }
        else{
            die('only one way to get the flag');
        }
}
    else {
        echo "You are not a real hacker!";
    }
}
else{
    die('Please input first');
}

用post传参password,使用了is_numeric判断是否是数字,若判断不是数字,就判断是否为1234567,这里需要绕过is_numeric

构造payload

复制代码
passwd=1234567%00

得到flag

相关推荐
xixixin_1 小时前
【React】为什么移除事件要写在useEffect的return里面?
前端·javascript·react.js
嘗_1 小时前
react 源码2
前端·javascript·react.js
我只会写Bug啊5 小时前
Vue文件预览终极方案:PNG/EXCEL/PDF/DOCX/OFD等10+格式一键渲染,开源即用!
前端·vue.js·pdf·excel·预览
扯蛋4387 小时前
LangChain的学习之路( 一 )
前端·langchain·mcp
Mr.Jessy7 小时前
Web APIs学习第一天:获取 DOM 对象
开发语言·前端·javascript·学习·html
ConardLi8 小时前
Easy Dataset 已经突破 11.5K Star,这次又带来多项功能更新!
前端·javascript·后端
冴羽8 小时前
10 个被严重低估的 JS 特性,直接少写 500 行代码
前端·javascript·性能优化
rising start8 小时前
四、CSS选择器(续)和三大特性
前端·css
一 乐8 小时前
高校后勤报修系统|物业管理|基于SprinBoot+vue的高校后勤报修系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·毕设
爱喝水的小周9 小时前
《UniApp 页面配置文件pages.json》
前端·uni-app·json