Hotmail XSS后的利用 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    /************************************************************/

    /*                                    */

    /*        Hotmail转发方式协议分析          */

    /*                                    */

    /*              BY 捏蛋王              */

    /*                                    */

    /************************************************************/

    近期一哥们儿公开了Hotmail的XSS,导致迅速被封,之前写的钓鱼,挂马的相关利用全部Over,

Hotmail XSS后的利用

    不过在研究Hotmail XSS的利用方式的时候分析了其登陆,查看,发送,删除,转发的各个过程。

    通过分析,研究出了当XSS触发后,可以对目标邮箱的邮件任意操作。

    本文主要介绍Hotmail读取邮件内容和将其转发的方式,其他功能大同小异,大家自由发挥。

    以下是分析过程:

    1、获取所有邮件ID

    登陆Hotmail后监视点击收件箱的操作

    页面通过POST方式访问了/mail/mail.fpp,参数若干,其中参数cnmm为此页面调用的功能,参数d为该功能需要的参数字符串,获取邮件列表功能的cnmm参数值为Microsoft.MSN.Hotmail.Ui.Fpp.MailBox.GetFolderData。

    从Response Content的值不难看出,吐出的是一段JS脚本,这段脚本的用途就是刷新当前收件箱的列表,也可以把这段JS看成是一个Object,即eval(Response Content)

    我们从这个JS中可以得到当前收件箱的所有的邮件ID的集合,其获取方式为eval(Response Content).Value.MessageInfo.HeaderTags。

    2、获取邮件内容

    拿到了所有邮件的ID后,就要挨个读取其内容然后将其转发,这一步我们先来挨个读取其内容。

    我们监视点击一封邮件的主题后的操作

    页面再次通过POST方式访问了/mail/mail.fpp,参数依然若干,但这一次cnmm变化了,其取值为Microsoft.Msn.Hotmail.Ui.Fpp.MailBox.GetMessage,同时参数d也更改为获取邮件内容功能所需要的参数字符串,

电脑资料

Hotmail XSS后的利用》(https://www.unjs.com)。

    Response Content的值仍然是一段JS,但这次的JS实现的功能是通过邮件的MsgID来获取邮件的内容。

    同样,我们将这段JS也看作一个Object,其邮件内容获取方式类似eval(Response Content).Value.Body,邮件主题获取方式类似eval(Response Content).Value.Header.Subject.Text。

    3、将获取到的邮件发送出去

    我们拿到了邮件主题和邮件内容,现在就要想办法将它构造成一封新的邮件发送出去。

    发送的方式类似上面的介绍,仍然是POST方式访问mail.fpp,cnmm的参数为Microsoft.Msn.Hotmail.Ui.Fpp.MailBox.SendMessage_ec,同时参数d也更改为发送邮件功能所需要的参数字符串。

    =====================我也来一条猥琐的分割线=====================

    通过以上的分析,我们便可以将一封邮件顺利的发送出去。

    现在我来介绍一下这个参数d在不同功能中参数字符串的格式及意义。

    获取邮件ID的时候其取值为

    "00000000-0000-0000-0000-000000000001",Date,100,false,0,100,2,"",""

    "00000000-0000-0000-0000-000000000001"代表收件箱,即要获取收件箱内的邮件,默认情况下,Hotmail有5个邮件箱,分别是

    "00000000-0000-0000-0000-000000000001"代表收件箱

    "00000000-0000-0000-0000-000000000005"代表垃圾邮件箱

    "00000000-0000-0000-0000-000000000004"代表草稿箱

    "00000000-0000-0000-0000-000000000003"代表发件箱

    "00000000-0000-0000-0000-000000000002"代表已删除邮件

    =====================我再来一条猥琐的分割线=====================

    获取邮件内容和主题的时候d的取值为

    "be224285-1015-41c8-acdd-47e813550f62",true,-1,Forward,true,{"44\0\8CACA2B8E22DD30\00000000-0000-0000-0000-000000000001",null}

    其中be224285-1015-41c8-acdd-47e813550f62为邮件ID

    {"44\0\8CACA2B8E22DD30\00000000-0000-0000-0000-000000000001",null}没理解是什么意思,只是知道其属性名称为AuxData,但也找到了获取的方式

    for (i=0;i<=eval(Response Content).length-1;i++){

    myMsgId[i] = eval(Response Content)[i].MessageId;

    myAux[i] = unescape(eval(Response Content)[i].AuxData);

    }

    myAux即为AuxData的集合。

    Forward为转发的意思,之所以用这个参数,为的是在后期构造的邮件内容中可以直观的看到原邮件的收件方和发送方。

    =====================原来猥琐的分割线这么好玩=====================

    发送邮件时d的取值为

    "mymail@hotmail.com","xxsuser@hotmail.com","","",0,"Fuck Subject","Fuck Mail Body",[一长串猥琐的字符串],null,"",null,null,null,null,0,false,[],null,"audio",null

    [1] [2]  下一页

最新文章