小松鼠的黑魔法-XSS 利用

責(zé)任編輯:editor007

2014-12-30 17:41:49

摘自:0x_Jin

那么攻擊者便可以利用Cookie進(jìn)入到網(wǎng)站后臺(tái),進(jìn)一步在后臺(tái)發(fā)現(xiàn)SQL注入文件上傳等漏洞 拿下WebShell。   從上邊的圖中可以看出當(dāng)有人通過內(nèi)網(wǎng)IP訪問時(shí),暴露了內(nèi)網(wǎng)IP以及端口號(hào),收集著為下一步掃描端口做準(zhǔn)備。

目前XSS漏洞普遍存在,但是所玩出的花樣招式并不多。希望這這個(gè)議題能夠起到拋磚引玉的作用吸引更多的人分享有意思的玩法。

議題介紹一些XSS的基本應(yīng)用以及進(jìn)階玩法,比如XSS探測(cè)環(huán)境,釣魚,攻擊內(nèi)網(wǎng)這些非常有趣的玩法。讓大家不再僅僅局限于拿個(gè)Cookie進(jìn)后臺(tái)。因?yàn)橐坏〤ookie存在HttpOnly屬性或者后臺(tái)做了訪問控制等,就沒的玩了 此議題希望能改變目前的這種狀態(tài)。

議題前半部分更多是介紹玩法以及玩法的原理,后半部分便是結(jié)合實(shí)際的例子來給大家演示下這些玩法到底是如何去玩的有多么的有意思。

1.Xss的多種利用方式

t01f72d1199826f3c31.jpg

  1.1 XSS獲取觸發(fā)頁面以及Cookie等敏感信息

如果Cookie的關(guān)鍵字段沒有使用HttpOnly , 后臺(tái)訪問限制等防護(hù)手段。

那么攻擊者便可以利用Cookie進(jìn)入到網(wǎng)站后臺(tái),進(jìn)一步在后臺(tái)發(fā)現(xiàn)SQL注入文件上傳等漏洞 拿下WebShell。

什么是關(guān)鍵字段?PHP的SESSION等用于驗(yàn)證身份的Cookie字段。

t01ecdcbc7046d1a716.jpg

  1.2 利用JavaScript協(xié)議來做些有意思的事情

t017032f34057ef7a08.png

  為什么第一個(gè)iframe元素里會(huì)輸出XSS ? 而第二個(gè)iframe元素則不會(huì)?

t01ae1c624d21dd91a4.jpg

第一個(gè)iframe里能顯示h1標(biāo)簽因?yàn)橛蟹祷刂登也粸閡ndefined
問:那我們可以利用這個(gè)做些什么?

t01fc34417ce8c3aa4b.jpg

  利用可信任域的XSS來進(jìn)行釣魚攻擊

t0121af802cd9556035.jpg

  1.3 XSS蠕蟲

大概流程圖

通過各種方式讓更多的人觸發(fā)到你的XSS,然后使受害者成為攻擊者如何去實(shí)現(xiàn)?

t01e492f7804ae23f36.jpg

  如果你用有一枚XSS后,這些將不再是你蠕蟲的障礙。

如何去實(shí)現(xiàn)?

t01fcc4653b57d035ba.jpg

  這樣的蠕蟲跟CSRF有什么區(qū)別?

t017b06e19789376fa1.jpg

如果你遇到一個(gè)點(diǎn)無需Token等驗(yàn)證信息即可發(fā)表動(dòng)態(tài)的話那么便可以使用CSRF來蠕蟲

案例:時(shí)光網(wǎng)前端禮包大放送 XSS+CSRF 各種刷轉(zhuǎn)發(fā) 回復(fù) 加關(guān)注

該如何去蠕蟲?

t0125290f84df2cada5.jpg

  1.4 劫持表單

1.它適用于哪些環(huán)境?

可被植入XSS代碼的頁面存在表單

擁有網(wǎng)站的控制權(quán)限卻解不開用戶密碼

2.該如何去劫持表單?

目前在長(zhǎng)短短的xss庫(kù)中已擁有這個(gè)功能。

使用方法:xss.xform(表單對(duì)象,接受地址)

3.表單劫持的原理:

t01431e70913bca9376.jpg

  1.先獲得要劫持表單的action,target(為了不影響功能)

2.將當(dāng)前表單的提交地址替換為我們的地址

3.當(dāng)表單提交時(shí)先提交給我們,然后才提交給原本的地址

好處:在劫持到數(shù)據(jù)的同時(shí),又不影響功能,可以正常登陸

Sogili XSS庫(kù):http://pujun.li/xss.js

1.5 探測(cè)目標(biāo)環(huán)境

有時(shí)候?yàn)榱瞬幻つ抗粢粋€(gè)目標(biāo)我們需要去獲得更多信息。比如:Flash版本 Java版本 操作系統(tǒng) 瀏覽器等等信息

1.為什么要這樣去做?

t01308ff1a3b7f67d60.jpg

  我們?cè)撊绾稳ヌ綔y(cè)到目標(biāo)的環(huán)境?

t01f4a8319892ee071f.jpg

雖然Navigator對(duì)象任何瀏覽器都支持,猶豫不是標(biāo)準(zhǔn)所以有的瀏覽器可能獲取不到某些信息

獲得flash版本 :http://jsbin.com/rukirayuca

獲得java版本 :http://jsbin.com/cabirudale

獲得插件列表 :http://jsbin.com/vejujatuxa

獲得插件列表2:http://jsbin.com/pebirixedo

t013b549c41c3bf29d9.jpg

  從UserAgent中又可以看出操作系統(tǒng)以及瀏覽器版本

1.6 XSS的內(nèi)網(wǎng)應(yīng)用

1.獲得內(nèi)網(wǎng)IP:

獲得IP, 猜測(cè)下內(nèi)網(wǎng)的范圍,為以后掃描內(nèi)網(wǎng)的其他機(jī)器做準(zhǔn)備。

t01db2a7c7aa7d80347.jpg

  如何做到瀏覽器獲得內(nèi)網(wǎng)IP的?

Javascript : window.webkitRTCPeerConnection

t01d338b71f43a0fb7c.jpg

WebRTC在firefox上已有在線聊天的例子,雖然他最初不是為方便xss而生的可是他的一些API可以方便我們用XSS去做更多的事情。比如獲得內(nèi)網(wǎng)IP。

WEBRTC主頁:http://www.webrtc.org/

2.掃描內(nèi)網(wǎng)機(jī)器的開放端口之Web端口:

利用javascript的onload特性來做即可。

t01e450cfe0a6be3bdf.jpg

  2.掃描內(nèi)網(wǎng)機(jī)器的開放端口之服務(wù)端口:

利用其他服務(wù)的協(xié)議以及私有協(xié)議來探測(cè),比如FTP協(xié)議。

t01ac2d5ee37b4eb63a.jpg

當(dāng)我們要探測(cè)21端口是否開放時(shí)便可以使用ftp協(xié)議,幾乎所有瀏覽器都支持它。

3.掃描內(nèi)網(wǎng)機(jī)器的Web容器:

利用img的onload,這兒可以發(fā)散性思考一下 還有什么可以這樣做?

t012d6ab9ca8ecb27b3.jpg

  4.攻擊內(nèi)網(wǎng)中的其他機(jī)器

前提:足夠多的路徑與POC

這樣我們便可以用利用一些cms的漏洞來攻擊內(nèi)網(wǎng)機(jī)器,比如wordpress安裝后默認(rèn)路徑是/wordpress

那么便可以用之前掃描得到的ip以及開放的端口配合上路徑去發(fā)動(dòng)一些攻擊。

不是所有的漏洞都可以,得是一些可被利用的漏洞才行。比如命令執(zhí)行,可以執(zhí)行個(gè)反彈shell的命令。

比如getshell getshell后用js去請(qǐng)求驗(yàn)證一下便可以知道成功否。

引用黑哥PPT中利用st2反彈shell的圖片:

t014ea008f45db7211e.jpg

  XSS Proxy

1.攻擊者直接訪問后臺(tái)時(shí):

t018264e5b90c4b724b.jpg

  2.攻擊者用XSS Proxy訪問后臺(tái)時(shí):

t01b7adac4f3a239e47.jpg

  5.XSS Proxy的原理

注:JS是客戶端腳本,能觸發(fā)你XSS的人,肯定是有權(quán)限訪問后臺(tái)的人。

t013dfaf7c8b9ab217a.jpg

  2.那些實(shí)際案例中的XSS

2.1 案例1:圖蟲網(wǎng)存儲(chǔ)型XSS + CSRF + Phishing 即使有httponly 照樣玩的飛起

t019ccfee3235134247.jpg

2.2 案例2:前程無憂(51job.com) 兩枚存儲(chǔ)型XSS + 蠕蟲 (html標(biāo)簽外20字符加載js)

圍脖沒人轉(zhuǎn)發(fā),露臉率不夠高?蠕蟲來幫你。

蠕動(dòng)時(shí):

t01f39999daeef086e7.png

  如何去蠕蟲?先模擬正常操作走一遍,同時(shí)抓包。

轉(zhuǎn)發(fā)微博時(shí)抓包:

t01eeda8232eca6b75f.png

  分析參數(shù)值:

Type 4 :代表轉(zhuǎn)發(fā)微博

Noticeid Replyid 代表微博ID

Content 代表轉(zhuǎn)發(fā)的內(nèi)容

分析完后,便可以把我們要蠕

動(dòng)的微博ID替換到Noticeid Replyid

然后用js來編寫ajax的代碼,使其蠕動(dòng)

代碼該如何編寫?

t019d9ca4259c8b3da9.png

  Address為接受請(qǐng)求的地址。

Shuju 為修改后的POST數(shù)據(jù)包

然后定義一個(gè)函數(shù),函數(shù)中創(chuàng)建了AJAX對(duì)象,并設(shè)置好了Content-Type

調(diào)用函數(shù)傳入地址以及數(shù)據(jù)包即可POST成功。

達(dá)到轉(zhuǎn)發(fā)微博的效果,轉(zhuǎn)發(fā)后別人點(diǎn)開微博,又會(huì)中招,傳遞給其他人

2.3 案例3:我是如何通過一個(gè) XSS 探測(cè)搜狐內(nèi)網(wǎng)掃描內(nèi)網(wǎng)并且蠕動(dòng)到前臺(tái)的!(附帶各種 POC)

Cookie獲取不全(因?yàn)橛衕ttpOnly) 后臺(tái)放在內(nèi)網(wǎng),這樣的XSS點(diǎn)你還會(huì)繼續(xù)下去么?

反正試試又不會(huì)懷孕,干嘛不試呢?

Sohu出了自媒體系統(tǒng),于是我便去測(cè)了下XSS,然后得到了以下信息。

t019050dc2460d09a38.png

  從上圖中,我們得到了什么?

url,Ping這個(gè)Url發(fā)現(xiàn)顯示未知主機(jī),然后便意識(shí)到肯定是一臺(tái)內(nèi)網(wǎng)主機(jī)。

UserAgent,從UserAgent中看出了是WIN7+Chrome30(如果是存在漏洞的瀏覽器可以直接先弄員工機(jī))

得知到這些信息后對(duì)我們有什么用處?起碼我們知道他們的員工是使用的現(xiàn)代瀏覽器了,而不是老掉牙的IE6,現(xiàn)在便可以來大干一場(chǎng)了。

1.獲得內(nèi)網(wǎng)IP:

t017917aba2f588ee37.png

  最后得到員工內(nèi)網(wǎng)IP段:10.7.8.1 – 10.7.8.255

可以干什么?

員工段應(yīng)該是辦公網(wǎng)段可以嘗試一些硬件設(shè)備的漏洞,比如TP-link的csrf 修改DNS。等等之類的,發(fā)揮自己的想象….

內(nèi)網(wǎng)XSS中,那些經(jīng)常方便我們的”通病”:

t011a5ca385ff11e567.png

  在內(nèi)網(wǎng)中有人通過域名訪問,有人通過內(nèi)網(wǎng)IP訪問。
 

從上邊的圖中可以看出當(dāng)有人通過內(nèi)網(wǎng)IP訪問時(shí),暴露了內(nèi)網(wǎng)IP以及端口號(hào),收集著為下一步掃描端口做準(zhǔn)備。
 

像sohu這種大公司內(nèi)網(wǎng)肯定劃分的比較嚴(yán)格的,服務(wù)器肯都放在一個(gè)網(wǎng)段中,所以只需要對(duì) 10.10.125.195網(wǎng)段掃描下常開的端口,80 8080 以及暴露的8087。
  

為什么不多掃描點(diǎn)端口呢?因?yàn)閽呙杼喽丝冢瑫?huì)導(dǎo)致網(wǎng)頁比較卡 甚至網(wǎng)頁崩潰

掃描內(nèi)網(wǎng)服務(wù)器網(wǎng)段所開放的WEB端口:

t01af5de8bc83b3f02c.jpg

可以看到上邊的圖中每個(gè)ip都探測(cè)了3個(gè)端口,onload事件中的端口,也對(duì)應(yīng)了需要探測(cè)端口。

運(yùn)行后的結(jié)果:

t01e4137b7267ffbbc4.png

  整理去重后的結(jié)果:

t01f5576d6a309f2421.png

  得到了內(nèi)網(wǎng)Web服務(wù)器所開放的端口后,我們?cè)摳陕铮?/p>

收集一些CMS,框架的默認(rèn)路徑,以及POC,下一步可以嘗試?yán)肞OC去反彈shell或Getshell。

比如:命令執(zhí)行漏洞,例子有:struts2 Thinkphp Elasticsearch CVE-2014-3393 Cisco ASA Software遠(yuǎn)程認(rèn)證繞過漏洞……

引用黑哥PPT中的圖片

把收集到的ip,端口以及路徑集合在一塊去嘗試?yán)孟翽OC,如下圖:

t01fee834cad92dcfb7.jpg

t014e2e40fc01f6b9bf.png

  如果上一步無法進(jìn)行,那么便可以先試試找到個(gè)sql注入,文件上傳漏洞。

如何去做?可以先通過ajax的方式把后臺(tái)的一些網(wǎng)頁給爬下來,然后本地渲染找下漏洞可能存在點(diǎn)。

t01fe262906e6c02ffb.png

t011326585a0c566c12.png

  發(fā)送了了一個(gè)文章URL的ID參數(shù)帶單引號(hào)和不帶單引號(hào)兩個(gè)請(qǐng)求。

第二個(gè)請(qǐng)求加了個(gè)單引號(hào)報(bào)錯(cuò)了,當(dāng)時(shí)我以為有注入,高興壞了 后來發(fā)現(xiàn)根本就不是注入點(diǎn)。

現(xiàn)在陷入了困境,后臺(tái)不存在漏洞,又沒有足夠的路徑以及POC,該怎么辦?

操起老行當(dāng),釣魚:

在爬網(wǎng)站后臺(tái)的時(shí)候特地去爬了下登陸界面,為釣魚做準(zhǔn)備。

t01e4ef09ebf508ec88.png

由于不細(xì)致也可能是自己太貪心想多釣到點(diǎn)賬號(hào),沒有設(shè)置只出現(xiàn)一次,導(dǎo)致后來被發(fā)現(xiàn)。

t01e50f0d4502ceee33.png

PPT中的那些例子
獲得flash版本 http://jsbin.com/rukirayuca
獲得java版本 http://jsbin.com/cabirudale
獲得插件列表 http://jsbin.com/vejujatuxa
獲得內(nèi)網(wǎng)IP http://jsbin.com/riyisavura
掃描內(nèi)網(wǎng)端口 http://jsbin.com/ziwununivo
掃描WEB容器 http://jsbin.com/piwemaquwa
掃描FTP端口 http://jsbin.com/kulahicide

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)