我很难理解这一部分是如何从这个网站关于 Rails SQL 注入 http://rails-sqli.org/#resources works.
在 ORDER BY 子句中利用 SQL 注入很棘手,但 CASE 语句可用于测试其他字段,将排序列切换为 true 或 false。虽然可能需要多次查询,但攻击者可以确定该字段的值。
有人可以解释一下吗?他们说“将排序列切换为真或假”的部分很难理解,因为我不明白这将如何使攻击者能够泄露另一个字段的值。
如果您试图确定表中已知字段的值,但未在选择中返回,您可以按顺序迭代它,直到获得该值:
ORDER BY CASE WHEN variableIdLikeToDiscover < 'N' then 1 else 0 end
然后看它是大于还是小于'N'。如果小于,接下来你可以尝试:
ORDER BY CASE WHEN variableIdLikeToDiscover < 'F' then 1 else 0 end
依此类推,直到您(最终)确定了该值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)