攻防世界: lottery

攻防世界: lottery

本文知识点:

php中==符号的规则:

当使用==符号的时候,php不会要求两个变量的类型一致,他会先进行隐式的类型转换,然后进行比较。下面是具体的转换规则:

整形与字符串比较,先将字符串转换为整型再比较

布尔型与字符串比较,先将字符串转换为布尔型再比较

题目描述

如下图,可以看到游戏是一个猜数字的游戏:也就是我们会自己选择7个数字,然后上传给服务器,服务器返回7个数字给我们,比较每个位子上的数字,如果相等则得钱,相等的个数越多,钱越多。但是每次会消耗两美刀。

附件代码阅读

主要就是buy这个函数,这个函数回得到我们上传的7个数字,同时生成7个数字,然后依次比较他们来决定我们能够获得多少钱。

其中服务端生成数字的函数如下:

可以看到,其实服务端生成的是一个长度为7的字符串。

伪造数据

通过burp siute抓包来伪造数据,因为网页端上传的输入是一个字符串,我们不能控制,使用工具将上传的数字改为布尔型变量就能大概率得到相等的判定。

前面提到字符串和布尔类型的比较,会先将字符串转换为布尔,当字符串不是'0'的时候,其转换的值就为true,因此我们能够不断这样操作得到钱,最后能够买flag!!!

相关推荐
不好听6138 小时前
从一行 JSX 到屏幕像素:前端开发者必须懂的浏览器渲染管线
前端
恒拓高科WorkPlus8 小时前
企业级内网即时通讯建设模型:BeeWorks内网IM四层架构
前端
前端小李子9 小时前
前端环境变量裸奔?我用 EnvShield 给它穿了件防弹衣
前端
youtootech9 小时前
HarmonyOS《柚兔学伴》项目实战25-我的页面、Web 嵌入与项目总结
前端·华为·harmonyos
小林ixn9 小时前
从零到一理解 React 父子组件通信:手写一个 Todo 应用带你彻底搞懂单向数据流
前端·javascript·react.js
醇氧11 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
qetfw12 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
甲维斯12 小时前
我要开始吹牛逼了!Kimi K3 “宇宙无敌”!
前端·人工智能
a11177612 小时前
微光小屋-前端养成小游戏 开源项目
前端