我们有一个.NET(C#)Web应用程序,它使用GUID来识别MS SQL DB中的特定记录。
生成这些GUID并将其注入到数据库中,然后用于为目标收件人创建一个响应URL,以便返回我们的应用程序。
我们检查过并仔细检查过,我们的出站电子邮件流程很好,所有GUID都完好无损。
但是,在半定期的基础上,我们会在用户请求的网址中看到无效的GUID。
最初,我们认为这种间歇性错误是一种恶意的"驾驶"类型问题,但进一步调查,似乎并非如此。事实上,这个问题就是腐败问题。
我们设法跟踪并确定发生了什么,但我们仍然不知道如何发生。例如,这是我们的GUID之一,也是我们在用户收到并响应电子邮件号召行动后在页面请求中看到的同一GUID的损坏版本。
我们的GUID:
A715395B-F235-4C29-88AE-1AFCE949E11D
腐败的GUID:
n7153952o-s23563-4p29-88nr-1nspr94954r11q
正如您所看到的,损坏的GUID中包含原始GUID的元素,但我们无法查看损坏的原因或模式。
我们的网址格式为:
https://www.example.com/page/?guid1=GUID1&guid2=GUID2
发生损坏时,URL中的两个GUID都已损坏,实际上,参数的顺序是相反的,因此我们看到的包含损坏的GUID的URL如下所示:
https://www.example.com/page/?guid2=CORRUPTGUID2&guid1=CORRUPTGUID1
关于如何以及为什么会发生这种情况的任何和所有想法都将非常感激。解决这类问题的一半问题是理解它是如何以及为什么会发生的,但是现在,我们感到难过:-(
编辑:
此外,还有一种腐败模式如下:
A -> n
B -> o
C -> p
D -> q
E -> r
F -> s
这代表了45个字符的移位,但它没有解释我们也注入的字符。
Our GUID: A715395B-F235-4C29-88AE-1AFCE949E11D
Corrupt GUID: n7153952o-s23563-4p29-88nr-1nspr94954r11q
Our GUID: A715395B -F235 -4C29 -88AE -1AFCE949E11D
Converted GUID: A7153952B -F23563 -4C29 -88AE -1AFCE94954E11D
Injected chars: ^ ^^ ^^
答案 0 :(得分:1)
因此,这似乎取决于我们的一些客户在其入站邮件服务器上使用的反恶意软件。
Here's a link to a security post on stackexchange which explains the issue