用户
搜索
  • TA的每日心情
    慵懒
    2018-10-16 17:43
  • 签到天数: 113 天

    连续签到: 2 天

    [LV.6]常住居民II

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    12

    主题

    220

    帖子

    1144

    魔法币
    收听
    0
    粉丝
    3
    注册时间
    2015-11-20

    i春秋签约作者

    发表于 2018-9-11 14:53:43 66560

    0x00 某系统前台代码不严谨导致任意刷硬币的漏洞分析

    程序下载地址:https://pan.baidu.com/s/16PACpYifrMiT42L5MHn9uA
    版本:V3.7.180327
    简介:利用普通用户刷取影币,然后在用银币够买VIP时间

    0x01 程序安装到复现

    1.第一步安装系统

    2.第二步设置数据库

    3.安装完毕

    4.去前台注册个用户->进入个人中心

    5.点击升级VIP,然后在购买天数这里输入负数

    6.这样就可以看到影币添加了,VIP权限时间减少了,如果可以这样刷那么就可以利用减少VIP时间换取影币,在用影币换取VIP。

    0x03 代码审计

    漏洞所在文件:/Lib/Lib/Action/Admin/UserAction.class.php(VIP到期时间)

    漏洞文件代码:

    首先我们看到第87行if($_POST['user_id'] && $_POST['score_ext']),这里可以看到判断用户id和购买期限。

    第88行$info = D('Score')->ff_user_deadtime($_POST['user_id'], intval($_POST['user_deadtime']), intval($_POST['user_score']), intval($_POST['score_ext']));,大D代表是实例化自定义模型类,那么ff_user_deadtime这个应该是调用对象,我们看它这里传入的基本是变量,我们先追下他这个对象。

    路径:/Lib/Lib/Model/ScoreModel.class.php

    第44行if(abs($ext) < intval(C('user_pay_vip_small')))判断abs($ext)是否小于配置文件中的user_pay_vip_small,如果小于那么就输出提示信息。

    第48行$ext_conf = intval(C('user_pay_vip_ext'));,读取配置文件中的user_pay_vip_ext然后转换成int类型。

    第49行$ext_total = $ext * $ext_conf;,这里看到$ext变量是从上面的传入进来,默认为0,然后乘配置文件的值,如果判断不小于0那么就,扣除VIP期限退还相应的影币,如果大于0那么就,影币不足请先充值。

    第66行$info = $this->ff_insert($user_id, $score_type, $ext_total, 0, 0);更新影币记录。我们追下ff_insert这个函数在哪里。

    路径:/Lib/Lib/Model/ScoreModel.class.php

    第31行$data['score_id'] = $this->add($data);这里一看就是插入数据库,我们在回到上一张图。

    第68行if($info['score_id']),判断score_id是否存在,如果存在则取添加。

    第74行if($score_type == 21 && ($user_deadtime < time())),VIP过期时间小于操作时间时 以操作时间开始计算

    第77行if(D('User')->save($data)),判断是否修改成功

    系统的高版本对此漏洞进行了修复,增加了安全校验过滤。
    使用道具 举报 回复
    发表于 2018-9-11 17:38:59
    初来乍到01 发表于 2018-9-11 16:51
    系统的高版本对此漏洞进行了修复,增加了安全校验过滤。

    因为我已经提交过这个BUG了
    使用道具 举报 回复
    学习一下~
    使用道具 举报 回复
    没看懂
    使用道具 举报 回复
    发表于 2018-9-22 17:38:45
    学习学习~
    使用道具 举报 回复
    发表于 2018-10-28 20:28:50
    学习一下~
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册