【问题标题】:sql-server stack queries sql injection update query is not workingsql-server 堆栈查询 sql 注入更新查询不起作用
【发布时间】:2019-07-18 22:10:06
【问题描述】:

使用堆栈查询运行更新语句。但是,奇怪的是,只有一列没有变化。

';UPDATE USERS SET ID='1234' WHERE ID='12345' => DONE
';UPDATE USERS SET ID_DETAIL='1234' WHERE ID='12345' => FAIL
';UPDATE USERS SET ID='1234',ID_DETAIL='1234' WHERE ID='12345' => FAIL

没有错误输出。有人能救我的命吗?

【问题讨论】:

  • 您的第一行修改了id 列,因此在第二行中 12345 用户不存在。
  • 否,可以通过SELECT语句中的查询查看。

标签: sql sql-server sql-injection


【解决方案1】:

以下是您正在做的事情的摘要:

ID = 12345

UPDATE USERS SET ID='1234' WHERE ID='12345'

ID 字段现已更新:ID = 1234

UPDATE USERS SET ID_DETAIL='1234' WHERE ID='12345'

您要更新的字段 (ID = 12345) 现在是“1234”,无法使用此语句进行更新。要更新此字段,您必须使用以下查询:

UPDATE USERS SET ID_DETAIL='1234' WHERE ID='1234'

这同样适用于您的最后一个查询。在堆栈查询中,首先执行第一个查询,依此类推。因此,您的下一个陈述应考虑到这一点。

【讨论】:

  • 感谢您的回答。明白,但我不能改变一列,不是那个。
  • 假设我有两列。 'team_select'、'team_name' 和 'team_name' 改变,但 'team_select' 没有改变。
  • UPDATE TEAMS SET team_name='A' WHERE IDX=1 => CHANGE// UPDATE TEAMS SET tame_select='1' WHERE IDX=1 -> NOT CHANGED
  • @김주원 您的问题已得到解答。出于多种原因,不鼓励将新问题作为评论开始 - 很难阅读/理解您所写的内容,因此请开始一个新线程。并注意 - “失败”通常被解释为“发生错误”。在您的原始帖子中,您的失败查询不会产生错误;它们只是没有效果。
猜你喜欢
  • 2015-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 2018-06-28
  • 1970-01-01
  • 2015-10-30
相关资源
最近更新 更多