AJAX安全問題


非同步Javascript和XML(AJAX)是用於開發Web應用程式以提供豐富使用者體驗的最新技術之一。由於它是一項新技術,因此尚未完成許多安全問題,以下是AJAX中的少數安全問題。

  • 攻擊面更多,因為需要保護更多輸入。
  • 它還公開了應用程式的內部功能。
  • 無法保護身份驗證資訊和對談。
  • 用戶端和伺服器端之間存在非常狹窄的界限,因此存在安全性錯誤的可能性。

 範例

以下是AJAX安全性的範例 -

2006年,蠕蟲感染了使用XSS和AJAX的雅虎郵件服務,利用了Yahoo Mail onload事件處理中的漏洞。當受感染的電子郵件被開啟時,蠕蟲會執行其JavaScript,將副本傳送給受感染使用者的所有Yahoo聯絡人。

動手實踐

第1步 - 我們需要嘗試使用XML注入為您允許的獎勵集新增更多獎勵。如下圖所示 -

第2步 - 確保使用Burp Suite攔截請求和響應。設定如下圖所示 -

攔截請求和響應

第3步 - 輸入方案中給出的帳號。我們將能夠獲得賬號獲得所有獎勵列表。我們有資格獲得5個獎勵。

第4步 - 現在我們點選「提交」,看看在響應XML中得到了什麼。如下所示,我們有資格獲得的三個獎勵將作為XML返回。

第5步 - 現在編輯XML並新增其他兩個獎勵。

第6步 - 現在將向使用者顯示所有獎勵以供他們選擇。選擇我們新增的那些,然後單擊「提交」。

第7步 - 出現以下訊息:「* Congratulations. You have successfully completed this lesson.」

預防機制

用戶端 -

  • 使用.innerText而不是.innerHtml
  • 不要使用eval。
  • 不要依賴用戶端邏輯來提高安全性。
  • 避免編寫序列化程式碼。
  • 避免動態構建XML。
  • 切勿將加密資訊傳遞給客戶。
  • 不要在用戶端程式碼中執行加密。
  • 不要在用戶端執行安全性影響邏輯。

伺服器端 -

  • 使用CSRF保護。
  • 避免編寫序列化程式碼。
  • 使用者可以直接呼叫服務。
  • 避免手動構建XML,使用框架。
  • 避免手動構建JSON,使用現有框架。