攻防世界: lottery

攻防世界: lottery

本文知识点:

php中==符号的规则:

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

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

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

题目描述

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

附件代码阅读

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

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

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

伪造数据

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

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

相关推荐
敲敲了个代码2 小时前
React 官方纪录片观后:核心原理解析与来龙去脉
前端·javascript·react.js·面试·架构·前端框架
一直都在5722 小时前
Spring3整合MyBatis实现增删改查操作
前端·vue.js·mybatis
咆哮的黑化肥2 小时前
SSRF漏洞详解
web安全·网络安全
小二·2 小时前
Python Web 开发进阶实战:可持续计算 —— 在 Flask + Vue 中构建碳感知应用(Carbon-Aware Computing)
前端·python·flask
恒拓高科WorkPlus2 小时前
如何通过即时通讯工具提升团队协作?
前端·安全
钟佩颖2 小时前
Vue....
前端·javascript·vue.js
漂流瓶jz2 小时前
Polyfill方式解决前端兼容性问题:core-js包结构与各种配置策略
前端·javascript·webpack·ecmascript·babel·polyfill·core-js
全栈软件开发2 小时前
PHP实时消息聊天室源码 PHP+WebSocket
开发语言·websocket·php
Y淑滢潇潇2 小时前
WEB 模拟学校官网
前端·css