iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 6
1
Security

資安x系統x絕對領域系列 第 7

[Day05]原始碼檢測x弱點修補X驗證攻擊-Cross site scripting

跨網站指令碼(Cross-site scripting,通常簡稱為XSS)

是一種網站應用程式的安全漏洞攻擊,是代碼注入的一種。
它允許惡意使用者將程式碼注入到網頁上,其他使用者在觀看網頁時就會受到影響。
這類攻擊通常包含了HTML以及使用者端腳本語言。
//取自維基百科

可以用簡單兩張圖片說明這個弱點的危險性:
http://ithelp.ithome.com.tw/upload/images/20161227/20103647MN9sJPdycU.png

http://ithelp.ithome.com.tw/upload/images/20161227/20103647WWNdNw0O4P.png

所以,當下一個使用者瀏覽到這個頁面的時候,載入這個頁面的時候就會一併載入Google首頁。
但是,如果是其他不安全或是惡意的頁面呢…?

[弱點說明]

網頁伺服器/應用程式都沒有錯誤訊息可追蹤:
Web應用程式直接將來自使用者的輸入參數在未經任何處理下送回瀏覽器執行
(1)寫入式
(2)反射式
攻擊者可利用此弱點讓使用者的瀏覽器執行駭客希望它執行的 Script
常見的問題功能:電子郵件、討論區、搜尋引擎、留言板…

目的:偷取使用者認證資料
竊取登入資料(stored in the cookie)
誘導使用者到假網站進行登入作業
攻擊後端管理網站 !
讓使用者下載木馬程式
存取使用者的電腦
XSS 蠕蟲 → 癱瘓網路

[弱點驗證]

 <div id="body">輸出點</div>
 <input type="text" value="輸出點"/>
 <script>a="輸出點";</script>

範例:
192.168.1.1?id=1
=> 我們可以用上方的驗證方式去嘗試確認有沒有XSS漏洞。
最簡單的攻擊方式是下alert(1)指令。
一旦允許執行,那麼網頁上就代表能做更多的事情。
基本範例:

    <div id="body">1</div>
    192.168.1.1?id=1<script>alert(1)</script>
    <div id="body">1<script>alert(1)</script></div>

進階範例:
轉址至其他鍵結、網站或惡意程式…等等…

   <META HTTP-EQUIV="refresh" CONTENT="0; URL=http://192.168.1.1;URL=javascript:alert('XSS');">
   <A HREF="javascript:document.location='http://192.168.1.1/'">XSS</A>

所以如果有掃到有這個弱點,是一定必需要被補起來的! :)
不然會造成很可怕的危害!
修補建議或範例可以參考Fortify弱點範例及說明:https://vulncat.hpefod.com/zh-tw/weakness?q=XSS
其實很偏愛Fortify


上一篇
[Day04]原始碼檢測x弱點修補X驗證攻擊-Path Manipulation
下一篇
[Day06]弱點掃描x概念x工具
系列文
資安x系統x絕對領域47

尚未有邦友留言

立即登入留言