1. 程式人生 > >跨站腳本攻擊XXS(Cross Site Scripting)修復方案

跨站腳本攻擊XXS(Cross Site Scripting)修復方案

prim 客戶端 密碼 腳本 node rim net 但是 fix

今天突然發現,網站被主頁莫名奇妙的出現了陌生的廣告。

通過排查發現是跨站腳本攻擊XXS(Cross Site Scripting)。以下為解決方案。

漏洞類型: Cross Site Scripting 漏洞描述:跨站腳本攻擊(Cross-site scripting,通常簡稱為XSS)發生在客戶端,可被用於進行竊取隱私、釣魚欺騙、偷取密碼、傳播惡意代碼等攻擊行為。 惡意的攻擊者將對客戶端有危害的代碼放到服務器上作為一個網頁內容, 使得其他網站用戶在觀看此網頁時,這些代碼註入到了用戶的瀏覽器中執行,使用戶受到攻擊。一般而言,利用跨站腳本攻擊,攻擊者可竊會話COOKIE從而竊取網站用戶的隱私,包括密碼。XSS攻擊使用到的技術主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對WEB服務器雖無直接危害,但是它借助網站進行傳播,使網站的使用用戶受到攻擊,導致網站用戶帳號被竊取,從而對網站也產生了較嚴重的危害。

  1. <strong>漏洞詳情:</strong>參數: s, 可被註入:
  2. {"assertList":[{"express":"htmlscripttext","source":"","val":"8976","var":"BODY"}],"inputIndex":4,"lockKey":"${FILENAME}${ARGNAME}101_para_reflect_xss","message":"para_reflect_xss","otherProperty":{},"pluginName":"","postBody":"","requestHeaders":{"Accept":"*/*","Connection":"keep-alive","Content-Type":"text/html","Host":"www.neterwork.com","Referer":"http://www.zihao123.com/","User-Agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;Alibaba.Security.Heimdall.937988)"},"ruleItemName":"para_reflect_xss","ruleName":"sts"}
  3. POC重現:http://www.zihao123.com/?s=

修復方案:

一:避免XSS的方法之一主要是將用戶所提供的內容輸入輸出進行過濾 ,可以利用下面這些函數對出現xss漏洞的參數進行過濾

  1. 1.PHPhtmlentities()或是htmlspecialchars()。
  2. 2.Pythoncgi.escape()。
  3. 3.ASPServer.HTMLEncode()。
  4. 4.ASP.NETServer.HtmlEncode()或功能更強的Microsoft Anti-Cross Site Scripting Library
  5. 5.Javaxssprotect(Open Source Library)。
  6. 6.Node.jsnode-validator

二:使用開源的漏洞修復插件。

實例:

避免XSS的方法之一主要是將用戶所提供的內容輸入輸出進行過濾,許多語言都有提供對HTML的過濾: 可以利用下面這些函數對出現xss漏洞的參數進行過濾:

  1. PHPhtmlentities()或是htmlspecialchars()。
  2. Pythoncgi.escape()。
  3. ASPServer.HTMLEncode()。
  4. ASP.NETServer.HtmlEncode()或功能更強的Microsoft Anti-Cross Site Scripting Library
  5. Javaxssprotect(Open Source Library)。
  6. Node.jsnode-validator

ASP漏洞代碼示例:

  1. &lt;%
  2. Dim param
  3. Set param=Request.QueryString(“dd”)
  4. response.write param
  5. %&gt;

修復範例:

  1. &lt;%
  2. Dim param
  3. Set param=Request.QueryString(“dd”)
  4. response.write Server.HTMLEnCode(param)
  5. %&gt;

PHP漏洞代碼示例:

  1. &lt;?php
  2. $aa=$_GET[‘dd‘];
  3. echo $aa.”123″;
  4. ?&gt;
  5. <strong>修復範例:</strong>
  1. &lt;?php
  2. $aa=$_GET[‘dd‘];
  3. echo htmlspecialchars($aa).”123″;
  4. ?&gt;

跨站腳本攻擊XXS(Cross Site Scripting)修復方案