SQL 更新查询注入

SQL Injection on update query

所以我设置了一个服务器来处理付款请求。用户在表单中输入他们的信用卡详细信息。

要在此处注入的查询:

$sql = "UPDATE users SET credit_card'".$credit_card."', cvv='".$cvv."', expdate='".$exp."' WHERE userid='".$_SESSION['userid']."'";

我正在尝试通过此查询更改另一个用户的密码。

其中 $credit_card 是从表单发布的。我试图通过编写自己的查询来注入 $credit_card 部分,并通过在末尾添加 ;-- 来摆脱其余部分。

我为 $credit_card 使用的语句是:

', password='test' where userid='10';-- 

现在,我确信这在昨天工作正常,但现在出现以下错误,我无法理解它。有什么帮助吗?

Query failed: UPDATE users SET credit_card'', password='test' WHERE userid='20';--, cvv='', expdate='' WHERE userid='20'

  1. 并非所有数据库函数都接受多条语句,因此 ; 分隔符可能被视为意外输入。

  2. MySQL中单行注释的语法是-- Foo(请注意双破折号后的白色space)。

  3. 如果服务器代码是您的,您可以只打印服务器实际生成的错误消息(而不是一些通用的 "something went wrong" 文本)。如果不是,只需将错误消息中的 SQL 代码复制并粘贴到您最喜欢的 MySQL 客户端。