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。 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,499评论 0 10
  • The Inner Game of Tennis W Timothy Gallwey Jonathan Cape ...
    网事_79a3阅读 12,451评论 3 20
  • 关于IT的英语 win10 系统 win + x apps and features 应用和功能 feature:...
    我要写小说阅读 4,119评论 0 1
  • 昨天下载了一些喜马拉雅音频 一路上听音频 学习永不止步 忘了早上做了什么 一些常规工作吧 挺忙的 下午笨死了切换帐...
    角落蜷缩阅读 188评论 0 0
  • 我想的房子,在一块闹中取静的地方,我既喜欢清悠,又喜欢热闹,能在热闹处守一片寂静。面积无须太大,过于空旷显得寂寞,...
    孙小炀阅读 1,424评论 13 24