是否可以解码邮件标头中的 SPAMCAUSE 字段?

Posted

技术标签:

【中文标题】是否可以解码邮件标头中的 SPAMCAUSE 字段?【英文标题】:Is it possible to decode a SPAMCAUSE field in a mail header? 【发布时间】:2017-05-21 07:12:51 【问题描述】:

我想解码这个字符串: X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeelgedrvdduucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenucgohfhorhgsihguuggvnhfjughrucdlhedttddm

有没有工具或东西可以做到这一点?

谢谢。

【问题讨论】:

【参考方案1】:

截至此答案,您可以使用此 tor 隐藏服务来解码标签:http://6jbnmws2zq2m2fsfmpwnssgsrxovohgggphymkd4df2pgcw7ccrdy6ad.onion

据此,您提供的 X-OVH-SPAMCAUSE 翻译为:

Vade Retro 01.394.21 AS+AV+AP+RT Profile: OVH; Bailout: 300; ^ForbiddenHdr (500)

历史上,http://spamcause.toorop.fr/ 曾经有一个服务,在所有者可能与此站点出现问题后主动下架,因此您可以放心地假设没有合法的方法来解码此类标签;这个答案也可能是临界的。

如果在您阅读本文时洋葱服务出现故障,那么用纯文本示例来计算密码看起来并不难......

(出于历史目的,原始 URL 为 http://fr3dpyqxb5ygbmji.onion - 截至 2021 年 10 月,onion v2 URL 不再容易连接,该站点在某个时候提供了新 URL)

【讨论】:

这听起来不像是一个答案,或者? 这绝对不是一个的答案,因为如果我这样做了,承认对他们使用的密码进行了逆向工程会给我带来麻烦;但他要求一个工具来破译它,而我指出的 tor 隐藏服务可以解决这个问题。 (我想一个合适的答案是“没有合法的方法可以做到这一点”) 我刚刚在fr3dpyqxb5ygbmji.onion 尝试了tor 服务。它没有回应我。 @JimDeLaHunt 现在回头看,我想它并不总是向上。如果其他人想要运行类似的东西,我看到他们现在添加了算法,但如果可能的话,vadesecure 客户端可能应该使用他们的 api。 tor 服务现在为我响应。 (注意:使用https: 对我不起作用,我必须使用http:。)该服务的首页上有有用的信息,可能有助于其他人编写自己的解码器。【参考方案2】:

看起来有一个 API 可以在 Vade 安全网站上解码垃圾邮件原因: https://api.partner.vadesecure.com/ 但不幸的是,必须成为 vadesecure 客户端才能使用它。

【讨论】:

此 API 似乎需要某种身份验证或登录才能成功。当我尝试将其用作身份不明的访问者时,我收到了 HTTP 错误 401(未经授权)。 谢谢!如果您的答案包含有关需要成为 vadesecure 客户才能使用它的信息,那么它会更有帮助。我鼓励您对其进行编辑并添加该信息。【参考方案3】:

通过旋转字符看起来有些混淆。我对此有所了解,虽然并不完美,但似乎大部分都有效:

def decode(msg):
    text = []
    for i in range(0, len(msg), 2):
        text.append(unrot(msg[i: i + 2]))
    return str.join('', text)


def unrot(pair, key=ord('x')):
    offset = 0
    for c in 'cdefgh':
        if c in pair:
            offset = (ord('g') - ord(c)) * 16
            break
    return chr(sum(ord(c) for c in pair) - key - offset)


print(decode('gggruggvucftvghtrhho'))

https://gist.github.com/lkraider/9530798a695586fc1580d0728966f6f0

【讨论】:

【参考方案4】:

从 lkraider 的出色回答开始,我提高了准确性。事实证明,偏移字符 (c..g) 是交替附加和前置的。因此,不仅要检查其中一个是否在一对中,还需要通过跟踪偶数对或奇数对来区分fhhf

def decode(msg):
    text = ""
    for i in range(0, len(msg), 2):
        text += unrot(msg[i: i + 2], i // 2)                    # add position as extra parameter
    return text


def unrot(pair, pos, key=ord('x')):
    if pos % 2 == 0:                                            # "even" position => 2nd char is offset
        pair = pair[1] + pair[0]                                # swap letters in pair
    offset = (ord('g') - ord(pair[0])) * 16                     # treat 1st char as offset
    return chr(sum(ord(c) for c in pair) - key - offset)        # map to original character

print(decode('gggruggvucftvghtrhho'))

https://gist.github.com/DoubleYouEl/e3de97293ce3d5452b3be7a336a06ad7

【讨论】:

以上是关于是否可以解码邮件标头中的 SPAMCAUSE 字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中使用其编码类型解码邮件标头字符串

带有maildir的Gnus:回复标头中的奇怪字段

作为发件人,使用 API 或标头,是不是可以检测电子邮件是不是使用 Gmail 的“计划发送”发送?

检测 RTP 流中使用的编解码器(用于动态 PT)

邮件中的 X 标头代表啥?

是否可以在 HTTP 标头字段中包含多个 CRLF?