天天看點

pikachu靶場之XSS

作者:xtf0727

XSS(跨站腳本):Cross-Site Scripting 簡稱為“CSS”,為避免與前端疊成樣式表的縮寫"CSS"沖突,故又稱XSS。一般XSS可以分為如下幾種常見類型:

1.反射性XSS;

2.存儲型XSS;

3.DOM型XSS;

XSS是一種發生在前端浏覽器端的漏洞,是以其危害的對象也是前端使用者。

形成XSS漏洞的主要原因是程式對輸入和輸出沒有做合适的處理,導緻“精心構造”的字元輸出在前端時被浏覽器當作有效代碼解析執行進而産生危害。

是以在XSS漏洞的防範上,一般會采用“對輸入進行過濾”和“輸出進行轉義”的方式進行處理:

輸入過濾:對輸入進行過濾,不允許可能導緻XSS攻擊的字元輸入;

輸出轉義:根據輸出點的位置對輸出到前端的内容進行适當轉義;

pikachu靶場之XSS

1、反射型xss(get)

反射型XSS通俗的來講就是當攻擊者插入構造好的惡意語句後,使用者點選之後回出現彈窗,但這個彈窗是一次性的,重新整理之後就沒有了,沒有存在伺服器中,Get呢就是它是以url的方式來送出資料的。在輸入框輸入任意字元,沒反應:

pikachu靶場之XSS

把網頁的代碼界面打開,将輸入框的輸入字元數量由20改為200,在輸入框輸入payload:test<script>alert ('123');</script>,點選submit,彈窗123:

pikachu靶場之XSS
pikachu靶場之XSS

2、反射型xss(post)

post是以表單的方式在請求體裡送出資料,在輸入框輸入賬号和 密碼,把網頁的代碼界面打開,将輸入框的輸入字元數量由20改為200,在輸入框輸入payload:test<script>alert ('123');</script>,點選submit,彈窗123:

pikachu靶場之XSS
pikachu靶場之XSS
pikachu靶場之XSS

3、存儲型xss

存儲型XSS形成原因也是因為特殊符号過濾不嚴導緻的,但不同的是存儲型XSS會将攻擊者構造的惡意代碼上傳後存儲在伺服器中;

在留言闆中輸入payload:test<script>alert ('123');</script>,點選submit,彈窗123:

pikachu靶場之XSS

其他裝置通路該網頁,也會出現該彈窗:

pikachu靶場之XSS

4、DOM型xss

在輸入框中輸入之前payload:test<script>alert ('123');</script>,檢視下面代碼,輸入代碼在a标簽中,導緻沒反應:

pikachu靶場之XSS

構造新的payload:a' onclick='alert (123)',點選click me!後,在點選what do you see?後,出現彈窗-123:

pikachu靶場之XSS

5、DOM型xss-x

輸入payload:a' onclick='alert (123)',點選請說出你的傷心往事然後一直點選下面的文字,直到彈出彈窗-123:

pikachu靶場之XSS

6、Xss之盲打

在XSS盲打中,我們輸入的内容不會在前端輸出,會存在背景,隻有管理者在背景才能看到使用者在前端輸入的内容;

在上面輸入框輸入payload:<script>alert(123)</script>,下面輸入123,點選送出,然後重新通路背景網址:http://192.168.1.9/pikachu/vul/xss//xssblind/admin.php,輸入登入賬号和密碼(admin/123456),出現彈窗-123:

pikachu靶場之XSS
pikachu靶場之XSS

7、Xss之過濾

在輸入框輸入payload:<script>alert(123)</script>,沒反應,可能payload被過濾:

pikachu靶場之XSS

将payload中的script換成大小寫:<ScriPT>alert(123)</ScriPT>,出現彈窗-123:

pikachu靶場之XSS

8、Xss之htmlspecialchars

Htmlspecialchars()函數把一些預定義的字元轉換為html實體,當我們輸入構造好的彈窗語句後,顯示我們的輸入已經被記錄;

在輸入框中輸入payload:a' onclick='alert (123)',然後點選payload,出現彈窗-123:

pikachu靶場之XSS

9、Xss之href輸出

輸入正常js payload沒反應,利用JavaScript協定,輸入payload: javascript:alert(123),送出後,點選輸入框下面文字,出現彈窗-123:

pikachu靶場之XSS

10、Xss之輸出

輸入payload:<script>alert(123)</script>後,沒反應:

pikachu靶場之XSS

檢視下面代碼,script代碼沒閉合,将payload改為:</script><script>alert(123)</script>,點選送出後,出現彈窗-123:

pikachu靶場之XSS

繼續閱讀