2020-2024top-10-web-hacking-techniques-of-2023
无聊在刷portswigger时发现portswigger原来还有对年度十大研究成果进行排名,感觉都挺有意思的。
2023/top3:SMTP走私——全球范围内的电子邮件伪造
所谓SMTP请求走私就是利用SMTP服务器的发送端和接收端的差异而进行的。
SMTP报文结果,发送端和接受端的简介
首先我们得先了解一下发送端于接受端的功能对应报文的处理
报文结构
1 | From: Alice <alice@example.com>\r\n |
可以发现其实就是邮件头加消息即body的结构,然后使用单独一行的.即<CRLF> . <CRLF>来当结束符。
发送端于发送端的差异
首先发送端遇到<CRLF> . <CRLF>即结束符号时会进行截断直接不解析后面的即只将<CRLF> . <CRLF>前的内容发送给接收端
而非常有趣的是当接受端收到<CRLF> . <CRLF>却会继续解析后面的smtp命令。
产生原因
前面我们说了发送端和接受端对<CRLF> . <CRLF>即结束符的处理方法是不同的。但是单纯的使用<CRLF> . <CRLF>是无法走私成功的,这个漏洞需要当发送端无法解析类似<CRLF> . <LF>或者<LF> . <LF>这种形式的单行.而接受端却可以解析。
那么就会造成攻击者构造如下报文1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17data\r\n
From: user@gmx.net\r\n
To: user@provider.example\r\n
Subject: Message #1\r\n
\r\n
lorem ipsum
\n.\r\n
mail FROM:<admin@gmx.net>\r\n
rcpt TO:<user@provider.example>\r\n
data\r\n
From: admin@gmx.net\r\n
To: user@provider.example\r\n
Subject: Message #2\r\n
\r\n
I am the admin now!
\r\n.\r\n
上面的payload就有可能造成发送端无法识别
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 L的博客!
评论





