小编典典

解释如何在Rails中利用order子句

sql

我很难理解Rails SQL Injections上此网站上的此部分的工作方式。

在ORDER
BY子句中利用SQL注入是很棘手的,但是CASE语句可用于测试其他字段,将sort列切换为true或false。尽管可能需要执行许多查询,但攻击者可以确定该字段的值。

有人可以解释吗?他们说“将排序列切换为true或false”这一点很难理解,因为我不知道如何使攻击者揭示另一个字段的值。


阅读 167

收藏
2021-04-14

共1个答案

小编典典

如果您要确定某个字段的值,那么您知道该字段位于表中,但未在选择中返回,则可以按以下顺序迭代该字段的值,直到获得该值:

 ORDER BY CASE WHEN variableIdLikeToDiscover < 'N' then 1 else 0 end

然后查看它是否大于或小于“ N”。如果小于,则可以尝试以下操作:

 ORDER BY CASE WHEN variableIdLikeToDiscover < 'F' then 1 else 0 end

依此类推,以此类推,直到您(最终)确定了价值。

2021-04-14