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票

提交以下这样的请求

可以看到票数变成1票

如果想提高票数可以用x-forwarded-for来进行刷票。
官方Demo测试一下

解决方案:
不要用str_replace这种诡异的实现。。。
|
还没有人抢沙发呢~