纵有疾风起
人生不言弃

DamiCMS 任意控制投票票数 – 网站安全 – 自学php网

DamiCMS 任意控制投票票数

投票的关键代码如下。

foreach($_POST['vote'] as $v)
                {
                        var_dump($v);
                        $v = str_replace("\n","",$v);
                        $s = explode("=",$v);
                        var_dump($s);
                        $data['vote'] = str_replace($v,$s[0]."=".(intval($s[1]) + 1),$data['vote']);
                }
                var_dump($data);
                if($vote->where('id='.intval($_POST['id']))->save($data))

传入的数据用等号分割,类似 选项1=3 会变成 array(选项1,3), 如果只传入选项一,会变成array(选项1,null),intval(null)会变成零,并且写入数据库。

POC:

一开始有100票
 

DamiCMS 任意控制投票票数 – 网站安全 – 自学php网插图

提交以下这样的请求
 

DamiCMS 任意控制投票票数 – 网站安全 – 自学php网插图1

可以看到票数变成1票
 

DamiCMS 任意控制投票票数 – 网站安全 – 自学php网插图2

如果想提高票数可以用x-forwarded-for来进行刷票。

官方Demo测试一下
 

DamiCMS 任意控制投票票数 – 网站安全 – 自学php网插图3

 

解决方案:

不要用str_replace这种诡异的实现。。。

 

    上一篇: 2345浏览器设计缺陷导致安全性不如IE浏览器存在潜在风险 – 网站安全 – 自学php网

    下一篇: 迅雷游戏盒子可被中间人攻击导致持久性拒绝服务及解决方案 – 网站安全 – 自学php网
未经允许不得转载:起风网 » DamiCMS 任意控制投票票数 – 网站安全 – 自学php网
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录