SQL注入更新查询

时间:2017-03-20 15:08:44

标签: mysql sql database sql-injection code-injection

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

要在此处注入:

$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';-- 

现在,我很肯定这是昨天工作但现在出现以下错误,我无法绕过它。有什么帮助吗?

  

查询失败:UPDATE用户SET credit_card'',密码='测试'WHERE userid = '20'; - ,cvv ='',expdate =''WHERE userid = '20'

1 个答案:

答案 0 :(得分:2)

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

  2. MySQL中单行注释的语法是-- Foo(请注意双击之后的空格。)

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