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

Can keys or hashes trigger an injection attack?

提问人:alien_jedi 提问时间:4/17/2022 最后编辑:alien_jedi 更新时间:5/5/2022 访问量:101

问:

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

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

加密 哈希 SQL 代码注入 理论

评论

1赞 Your Common Sense 4/17/2022
我不明白这个问题问的原因。是的,从理论上讲,哈希或密钥可以变成类似 - SELECT%0d*%0dFROM%0dWHEREVER。但这有什么关系呢?如果你正在保护你的SQL免受注入,那么显然,这样的哈希不会造成任何伤害。如果你不保护你的SQL,那么当攻击者可以使用任何其他数据时,为什么还要为哈希而烦恼呢?
1赞 Your Common Sense 4/17/2022
顺便说一句,当谈论“哈希”时,显然你指的是一种可能的表示,一个十六进制但是您还没有了解到哈希可以用多种格式表示,其中一些显然包括整个 ASCII 表。
0赞 alien_jedi 4/18/2022
@YourCommonSense是的,这显然不会发生。我只是好奇基本的未受保护的系统是否会受到影响。大多只是好奇,虽然没有实际应用。
0赞 Andy Lester 4/21/2022
这应该迁移到 security.stackexchange.com

答:

1赞 Bill Karwin 4/21/2022 #1

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

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

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

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

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