我是 SQL 注入领域的初学者,如果你能帮助我,我会很高兴。
场景:易受攻击的 Web 应用程序。
假设你有一个这样的 URL:
http://www.site1.com/cms/login.php
还假设为了访问该站点,您必须提供以下凭据:
用户名:foo,密码:bar
因此,上面的 URL 变为:
http://www.site.com/cms/login.php?username=foo&password=bar
如果您随后注入有效负载'OR'1'='1
,它将更改为:
http://www.site.com/cms/login.php?username=foo&password=bar'OR'1'='1
这对我来说很清楚,但我担心的是,我被告知相应的 SQL 查询(由后端 RDBMS 处理发送的查询)应该是:
SELECT userid
FROM CMSUsers
WHERE user = 'foo'AND password = 'bar' OR'1'='1';
该查询是重言式,因为'1'='1'
始终为 TRUE。
但是有效载荷'OR'1'='1
和查询的条件语句似乎不同OR'1'='1';
(看'
,有效载荷中最后一个 1 之后没有重音)
我的怀疑合理吗?
任何帮助将不胜感激。