【发布时间】:2021-12-19 05:41:37
【问题描述】:
我在课堂上做一个练习,通过用户/密码表单查找网页漏洞,我们希望能够使用 SQL 注入修改表的列。
我知道数据库的表,例如我正在尝试修改具有列 id、密码和电子邮件的表 users。
问题在于,对于 INSERT、UPDATE 或 DELETE,服务器代码使用 executeUpdate() 方法,而对于 SELECT,则使用返回 ResultSet 的 executeQuery() 方法,所以很明显,当我尝试类似以下操作时:
correctpassword'; UPDATE usuarios SET id='newname' WHERE id='oldname'; --
它返回一个错误,因为 UPDATE 没有返回 ResultSet 对象。
我也尝试过嵌套查询,因此主要咨询将是一个 SELECT,因此它实际上会返回一个 ResultSet 对象,但它也不起作用。查询是:
correctpassword'; SELECT id FROM usuarios WHERE id = (SELECT id FROM usuarios WHERE id=?admin?; UPDATE usuarios SET id=?luciareina? WHERE id=?admin?); --
你知道怎么做吗?非常感谢您!
【问题讨论】:
标签: java sql sqlite security sql-injection