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'
并非所有数据库函数都接受多条语句,因此 ;
分隔符可能被视为意外输入。
MySQL中单行注释的语法是-- Foo
(请注意双破折号后的白色space)。
如果服务器代码是您的,您可以只打印服务器实际生成的错误消息(而不是一些通用的 "something went wrong" 文本)。如果不是,只需将错误消息中的 SQL 代码复制并粘贴到您最喜欢的 MySQL 客户端。
所以我设置了一个服务器来处理付款请求。用户在表单中输入他们的信用卡详细信息。
要在此处注入的查询:
$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'
并非所有数据库函数都接受多条语句,因此
;
分隔符可能被视为意外输入。MySQL中单行注释的语法是
-- Foo
(请注意双破折号后的白色space)。如果服务器代码是您的,您可以只打印服务器实际生成的错误消息(而不是一些通用的 "something went wrong" 文本)。如果不是,只需将错误消息中的 SQL 代码复制并粘贴到您最喜欢的 MySQL 客户端。