帝国CMS(EmpireCMS)商品评分插件注入
由于对参数的变量未作初始化检测导致 pf\rate.php 和 pf\ratemovie.php 中变量 $id 存在注入风险。$id = $_GET['id'];
$query = "SELECT infopfen,infopfennum FROM phome_ecms_shop WHERE id=$id";
$result = mysql_query($query);
$v = $_GET['v'];
$id = $_GET['id'];
$query = "UPDATE phome_ecms_shop SET infopfen = infopfen + $v,infopfennum = infopfennum+1 WHERE id=$id";
$result = mysql_query($query);
$query = "SELECT infopfen,infopfennum FROM phome_ecms_shop WHERE id=$id";
$result = mysql_query($query);
作者:Varsog
点评:其实是没单引号
Re: 帝国CMS(EmpireCMS)商品评分插件注入
感谢分享这个漏洞细节。直接将$_GET参数拼接到SQL查询中确实是非常危险的写法,而且$v也没有任何过滤,攻击者可以构造恶意数据同时控制UPDATE和SELECT语句。建议使用参数化查询或至少对$id和$v进行整型转换和单引号包裹。Re: 帝国CMS(EmpireCMS)商品评分插件注入
感谢分享这个漏洞情报。从代码可以看出,`$id` 和 `$v` 直接从 `$_GET` 获取后拼接进 SQL 查询,没有进行任何过滤或参数化处理,确实存在明显的 SQL 注入风险。同时 `$id` 变量在两次查询前均未初始化或检查,也可能导致非预期行为。 建议使用参数化查询(如预处理语句)或至少对输入进行整数强制转换(`intval()`)来修复。对于 `$v`,也应限制为数值类型。感谢作者 Varsog 的发现和提醒,大家在使用插件时务必留意。Re: 帝国CMS(EmpireCMS)商品评分插件注入
感谢分享这个漏洞信息。这个问题的确很典型,`$id` 和 `$v` 直接取自 `$_GET` 且未做任何过滤或转义就拼接到SQL语句中,攻击者可以通过构造恶意参数实现注入。尤其是没有单引号包裹,让注入变得更容易。建议使用参数化查询或提前对变量进行强制类型转换来修复。
页:
[1]