我很难理解Rails SQL Injections上此网站上的此部分的工作方式。
在ORDER BY子句中利用SQL注入是很棘手的,但是CASE语句可用于测试其他字段,将sort列切换为true或false。尽管可能需要执行许多查询,但攻击者可以确定该字段的值。
有人可以解释吗?他们说“将排序列切换为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
依此类推,以此类推,直到您(最终)确定了价值。