Pikachu系列——XSS

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實體

“ 轉換爲 &quot
‘ 轉換爲 &#039
< 轉換爲 &lt
> 轉換爲 &gt

輸入查看特殊符號發生了實體轉義,但是發現單引號不被過濾
在這裏插入圖片描述
構造#‘ 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模塊先搞定了,關注收藏追更哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章