攻防世界: lottery

攻防世界: lottery

本文知识点:

php中==符号的规则:

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

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

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

题目描述

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

附件代码阅读

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

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

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

伪造数据

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

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

相关推荐
小码哥_常2 分钟前
从“新老交锋”看Retrofit与Ktor
前端
小J听不清26 分钟前
CSS 外边距(margin)全解析:取值规则 + 实战用法
前端·javascript·css·html·css3
还是大剑师兰特1 小时前
Stats.js 插件详解及示例(完全攻略)
前端·大剑师·stats
前端小超超1 小时前
Vue计算属性computed:可写与只读的区别
前端·javascript·vue.js
IT_陈寒1 小时前
SpringBoot实战:3个隐藏技巧让你的应用性能飙升50%
前端·人工智能·后端
weixin199701080162 小时前
唯品会商品详情页前端性能优化实战
前端·性能优化
爱学习的程序媛2 小时前
【Web前端】Pinia状态管理详解
前端·vue.js·typescript
爱学习的程序媛2 小时前
“数字孪生”详解与前端技术栈
前端·人工智能·计算机视觉·智慧城市·信息与通信
海石2 小时前
微信小程序开发02:原始人也能看懂的着色器与视频处理
前端·微信小程序·视频编码
程序员Sunday2 小时前
Claude Code 生态爆发:5个必知的新工具
前端·人工智能·后端