密钥或哈希可以触发注入攻击吗?

Can keys or hashes trigger an injection attack?

是否会生成(有意或无意)触发注入攻击的散列或密钥?例如,如果哈希或密钥生成为类似 SELECT%0d*%0dFROM%0dWHEREVER 的形式,这会导致注入攻击吗?我知道目前的技术和标准,任何体面的保护都会防止所有输入、散列和密钥,所以它几乎肯定不会影响现实中的任何系统。

是的,我被告知这是此类问题的错误位置。是的,我现在知道下次放在哪里了。

理论上,我认为哈希函数的结果可能会导致特定的字节序列恰好是 SQL 语法,无论是用作原始二进制字节还是编码在可打印 ASCII 字符的范围(值 0x20 到 0x7F)。

但是想出一个在散列时产生准确结果的输入字符串将是一项艰巨的任务。

哈希函数的结果始终是固定长度的,具体取决于哈希算法和选项。因此,您需要牢记一个完全适合该固定长度的攻击查询,然后您需要找到精确散列到该字符串的输入。

此外,防御此类攻击的方法与防御任何其他 SQL 注入攻击的方法相同:使用查询参数。 任何不安全的内容,否不管它是否是哈希函数的结果,如果它与 SQL 语法分开,则能够影响 SQL 注入。

我认为还有其他更容易、更有效的攻击方式。社交黑客仍然是最general-purpose 的攻击手段,几乎可以绕过任何安全防御措施。