攻防世界: lottery

攻防世界: lottery

本文知识点:

php中==符号的规则:

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

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

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

题目描述

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

附件代码阅读

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

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

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

伪造数据

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

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

相关推荐
EasyGBS几秒前
从接入到稳定播放:无插件直播H5视频流媒体播放器EasyPlayer.js如何撑起Web端流媒体
开发语言·前端·javascript
FfHUCisI3 分钟前
GMP 调度器:Go 并发的心脏是如何跳动的
开发语言·golang·php
不可能片场3 分钟前
nohup 之后进程还是死了:GUI 子进程的存活陷阱
前端·electron
名为沙丁鱼的猫7299 分钟前
React/JSX 编码规范
前端·javascript·react.js
是吕先森12 分钟前
【python】selenium实现web自动化测试
前端·python·selenium
Highcharts.js19 分钟前
甘特图纵向任务、横向时间显示图表可视化开发|Highcharts甘特图示例
开发语言·前端·javascript·可视化·甘特图·数据可视化·highcharts
yume_sibai31 分钟前
Element Plus 导航与反馈组件完全指南(15个核心组件)
前端·elementui·交互
星云API技术支持1 小时前
企业微信二次开发外部群:群聊数据与联系人信息如何建立关联
数据库·php·企业微信
其实防守也摸鱼1 小时前
教育信息技术应用创新---基础软件信息赛(题库)
大数据·运维·人工智能·web安全·自动化
可乐鸡翅yeah_1 小时前
hls.js 多实例并发踩坑,多视频页面播放器内存与冲突问题解决
开发语言·前端·javascript·音视频·hls·m3u8·m3u8在线播放