Pikachu靶場系列持續更新~
要像追劇追番一樣追下去哦
實驗二 —— XSS
XSS概述
Cross-Site Scripting 簡稱爲“CSS”(跨站腳本攻擊),爲避免與前端疊成樣式表的縮寫"CSS"衝突,故又稱XSS。一般XSS可以分爲如下幾種常見類型:
1.反射性XSS;
2.存儲型XSS;
3.DOM型XSS;
DOMXSS、存儲XSS與反射XSS有啥不同?
反射型:會經服務器處理,可在當前返回的數據包中發現XSS代碼並顯示在頁面中;
存儲型:經服務器處理,存儲在頁面中,以後別的用戶訪問,這個頁面裏都會有XSS代碼;
DOM:在返回包裏壓根兒就找不到XSS代碼的影子,只會出現在自己的頁面代碼中;
XSS是一種發生在前端瀏覽器端的漏洞,所以其危害的對象也是前端用戶。
主要原因
程序對輸入和輸出沒有做合適的處理,導致“精心構造”的字符輸出在前端時被瀏覽器當作有效代碼解析執行從而產生危害。
防範
輸入過濾:對輸入進行過濾,不允許可能導致XSS攻擊的字符輸入
輸出轉義:根據輸出點的位置對輸出到前端的內容進行適當轉義
實驗環境
我用的是phpstudy集成環境,一鍵搭環境 (如果端口沒被佔用還是比較順利的)
靶場:Pikachu靶場下載
瀏覽器:火狐(谷歌的好像默認alert不發生彈窗)
工具:hackbar插件
接下來:
–>把下載下來的pikachu文件夾放到web服務器根目錄下
–>根據實際情況修改inc/config.inc.php裏面的數據庫連接配置(登錄名和密碼要與數據庫相同)
–>訪問http://x.x.x.x/pikachu,會有一個紅色的熱情提示"歡迎使用,pikachu還沒有初始化,點擊進行初始化安裝!",點擊即可完成安裝。
XSS——反射型(get)
可在表單或者URL裏輸入<script>alert(1)</script>
發現輸入長度不夠,F12審查元素,修改maxlength值,再寫入彈窗語句
XSS——反射型(post)
看到登陸頁面,可以選擇爆破(admin,123456)
利用hackbar插件–>postdata功能,輸入message=<script>alert(1)</script>&submit=submit
XSS——存儲型
存儲型xss一般存在留言框,個人信息等其他用戶訪問頁面且可見的地方
這裏簡單彈了個cookie。在實戰利用下危害極大,可利用xss平臺或beef造成嚴重的威脅
XSS——DOM型
查看元素,發現用戶輸入的字符串會被存進src然後拼接
構造Payload:#'><img src="#" onmouseover="alert('xss')">
鼠標移動至圖片塊則發生彈窗
XSS——DOM型(-x)
跟上題類似,不過這個是點擊鏈接之後發生的彈窗
構造Payload:#'><img src="#" onmouseover="alert('xss')">
鼠標移動至圖片塊則發生彈窗
XSS——盲打
盲打,也就是說只有後臺才能看到輸入的內容,從前端是無法判斷是否存在XSS的。一般會聯合beef等平臺,利用xss盲打對獲取管理員的cookie信息等,之後對帶着一連串的攻擊套路…
這裏可以直接插入前面獲取Cookie的惡意代碼,直接盲打後臺管理員的Cookie
這裏我們自己登錄後臺…/admin_login.php
以管理員身份登錄進後臺就被彈窗,並彈出管理員的cookie
XSS——過濾
輸入<script>
發現被過濾掉了
這裏簡單通過大小寫繞過
(更多繞過請自行百度~或者以後會寫個xss繞過總結)
XSS——htmlspecialchars
htmlspecialchars()是PHP提供的一個對特殊字符進行轉義的函數,它可以把預定義的字符轉換爲HTML實體
“ 轉換爲 "
‘ 轉換爲 '
< 轉換爲 <
> 轉換爲 >
輸入查看特殊符號發生了實體轉義,但是發現單引號不被過濾
構造#‘ onlick='alert(1)'
繞過
點擊鏈接後發送彈窗
XSS——href輸出
發現輸入內容都直接被寫進href屬性值內
輸出在a標籤的href屬性中,可以使用javascript協議來執行JS
XSS——js輸出
F12審查源碼,發現輸入內容丟進了#formjs裏執行,輸入的字符被拼接到$ms變量中:
輸出被拼接到JS中,可以直接修改JS源碼實現逃過
第一種方法:giao'</script><script>alert(1)//
閉合標籤
第二種方法:111';alert(1);//
先分號閉合前面函數,再添加alert函數
GOT ALL OUT!
******************************************************
這一XSS模塊先搞定了,關注收藏追更哦~