xss漏洞成因
xss漏洞是一種前端javascript產生的漏洞。
我們網站基本都是會用到javascript編寫一些東西,瀏覽器也能直接識別javascript。
如果有一個地方能夠輸入文字,但是他又沒有過濾你的輸入,那么自己或者他人看到你輸入的javascript代碼就會直接執行。
這里舉個例子:
一個網站有一個評論功能,用戶可以在下面評論,但是有的用戶會在評論中加入javascript的代碼,那么這個代碼就會直接被執行。
xss產生的位置
xss算是漏洞中存在最多的了。
任何能夠看到你輸入的內容的地方,都有可能有xss漏洞。
除了這些肉眼可見的地方外:
1.數據包中的瀏覽器信息,ip,等也可以存在xss
有的網站是會獲取你數據包中的信息,然后展現出來的。
數據包被我們修改后就可以實現漏洞
2.get,post傳參也可能存在xss。
3.后臺監控的一些地方
有時候我們的用戶名或者一些信息會在后臺列出來,這些我們不清楚,但是在后臺可能會觸發我們的javascript代碼
xss的類型
以下是最常見的類型
反射型
介紹
這類的就是那種不會把你輸入的代碼存到服務器,只能本地看到的種類。
比如你輸入個xxx,它提示你你輸入的xxx存在xss漏洞。然后。。你就被你自己的xss打了。
你輸入的東西并沒有存到數據庫中,別人也并不會看到。
特殊利用方式
如果有一個get傳參的xss漏洞,那么我們可以嘗試一直寫出一個完整的含xss漏洞的url鏈接,用這個訪問的人就會產生自己打自己的效果。自己打自己執行javascript代碼,實現跳轉呀,獲取cookie呀什么的。
好處
這是一個很雞肋的漏洞,但是他確實有好處。
廠家基本不認這個,可能知道有這個漏洞也沒修復。但是這樣確實可以構造一次性鏈接去干別人,漏洞存在的比較多。
存儲型
介紹
這類漏洞是指像留言板這種。
就像現在正在看的這篇文章一樣。這篇文章會存在數據庫中,那么如果我在這里寫一個javascript代碼,而且csdn沒有進行過濾的話,所有看這個文章的人都會被干。
<script>alert('xss發出了一個彈窗成功被csdn轉義');</script>
好處
高科技全自動化打人,不需要我們發鏈接,看到的都得挨兩拳。
DOM型
介紹
類似我們sql注入的時候去拼接sql語句一樣。
有時候他用javascript代碼去用拼接的方法來顯示一些javascript代碼。
這時候如果中間有參數我們可以自定義,我們就可以去拼湊其他的語句實現xss攻擊。
好處
通過看前端頁面js代碼能看出來。
xss漏洞的危害
xss漏洞的原理就是沒有識別我們輸入的js代碼,導致js代碼執行。
也就是說,基本上javascript代碼能干的事情,xss漏洞都能做。
常見的
1.盜取用戶cookie
2.讓網站彈廣告
3.惡意鏈接釣魚
4.執行一些惡意的操作或者修改
(非存儲型的xss基本上需要對方配合)
xss漏洞的挖掘與利用
挖掘
挖掘xss的時候通常是構造一個彈窗的js代碼,然后放到可能存在漏洞的位置,然后進行彈窗,如果彈出窗口就算存在xss漏洞。(瀏覽器有時會攔截彈窗,可能會影響我們的彈窗彈出)
(就像我們瀏覽器能屏蔽一些網站中總是自己彈出的某些小廣告窗口一樣)
利用
xss漏洞的利用并不需要完全掌握javascript代碼。
通常他會有很多的已經寫好的javascript代碼(叫payload)。
還有一些工具,如beef等工具里面各種功能的代碼都已經寫好了,只要判斷出來了xss漏洞直接選擇使用就行。
利用xss漏洞通常是需要一臺私人服務器。
因為盜取cookie等操作都需要讓用戶把cookie發送到對應的位置或者工具,這個位置或者工具就是xss平臺。
像beef這樣的工具在kali中都有,但是kali是內網主機,外界根本找不到這里,所以我們無法完成對應操作,必須用服務器的公網ip才能接收。
xss漏洞一條龍服務
(完整的整理xss漏洞,以下是其他博客鏈接,如果沒有就是還沒寫完)
【xss跨站漏洞】xss漏洞前置知識點整理-CSDN博客
【xss跨站漏洞】xss漏洞利用工具beef的安裝-CSDN博客