天天看點

XSS腳本攻擊及防禦

最近是學校網頁設計大賽作品送出階段,我們寝室負責作品的部署和展示,室友就一 一對網站進行攻擊,比如說,浏覽網頁死循環出現彈窗至浏覽器奔潰,或者跳轉網頁,删除網頁節點,讓整個網頁變成空白。然後我也學會了幾招,最後趕緊處理了自己的網站漏洞,下面我就來分享一下我的經驗(原諒室友的不殺之恩,嘿嘿)。

所謂的XSS就是跨站腳本攻擊。惡意攻擊者往Web頁面裡插入惡意html代碼,當使用者浏覽該頁之時,嵌入其中Web裡面的html代碼會被執行,進而達到惡意攻擊使用者的特殊目的。那麼一般在什麼地方容易被攻擊呢?

在需要使用者輸入内容并且網頁要顯示該内容的地方就容易出現XSS漏洞。

這種攻擊靈活性強,因為html标簽語言是解釋性語言,不用考慮編譯錯誤的問題,攻擊者可以根據網頁的結構,通過自己輸入的内容(含标記符)來改變網頁的整體結構,達到網頁錯亂,或者其他問題。

下面我給大家集中不痛不癢的攻擊代碼:

1、簡單彈窗:

顯示使用者cookie

我用自己的網站給大家圖檔示範,

顯示彈窗前,我的網頁是這樣的:

XSS腳本攻擊及防禦

輸入腳本:

XSS腳本攻擊及防禦

再次浏覽我的網站:

XSS腳本攻擊及防禦

彈窗顯示cookie:

XSS腳本攻擊及防禦

2、讓使用者浏覽網頁時候自動跳轉到你想要的連結:

<script language="javascript" type="text/javascript">
           window.location.href="http://www.baidu.com"; 
    </script>
           

或者:

<script language="javascript">
    window.location.replace("http://www.baidu.com");
</script>
           

3、根據網頁結構輸入标記符讓網頁結構變亂,如下:

Win10小技巧:</ul>如何<ul>去掉通知區</ul>域網絡圖</ul>标上的感歎号?
           

我的網頁正常顯示:

XSS腳本攻擊及防禦

破壞節點後:

XSS腳本攻擊及防禦

4、擷取節點id移除網頁的内容:

<script>
            document.getElementById("hot_news").innerHTML="";
        </script>
           

移除前:

XSS腳本攻擊及防禦

移除後:

XSS腳本攻擊及防禦

5、嵌入網站:

<input type="text" value="插入輸入框"/>
           
XSS腳本攻擊及防禦

這裡也可以插入更多内容(大小取決于網站資料庫中這個字段的大小),這裡也是最容易讓浏覽者上當的,因為攻擊者可以在此處移除整個body,然後嵌入一個自己高仿的網站,當使用者習慣性點選網頁時,使用者的cookie資訊就被上傳到攻擊者的伺服器。

以上就是簡單的攻擊,那麼要怎麼預防上面的情況發生呢?

其實很簡單,開發者隻需要在背景對輸入的資料進行過濾,即替換所有的标記符就可以了。

好了,這些就是我的學習經驗,希望對做網站開發的你有幫助,但是切記,不能攻擊别人的網站,那樣是犯罪。

更多部落格請關注部落客部落格。