漏洞總結

會話固定攻擊(Session Fixation)

在這裏插入圖片描述
⚡️會話固定攻擊(session fixation attack)是利用應用系統在服務器的會話ID固定不變機制,藉助他人用相同的會話ID獲取認證和授權,然後利用該會話ID劫持他人的會話以成功冒充他人,造成會話固定攻擊。
在這裏插入圖片描述
整個攻擊流程:

  • 攻擊者Attacker能正常訪問該應用網站。

  • 應用網站服務器返回一個會話ID給他。

  • 攻擊者Attacker用該回話ID構造一個該網站鏈接發給受害者Victim。

  • 受害者Victim點擊該鏈接。

  • 攜帶攻擊者的會話ID和用戶名密碼正常登陸了該網站,會話成功建立。

  • 攻擊者Attacker用該會話ID成功冒充並劫持了受害者Victim的會話。
    👉瞭解更多
    攻擊分析:
    攻擊的整個過程,會話ID沒變過,所以導致此漏洞。
    🏡攻擊修復:

  • 登錄重建會話
    每次登錄後都重置會話ID,並生成一個新的會話ID,這樣攻擊者就無法用自己的會話ID來劫持會話,核心代碼如下:

// 會話失效
session.invalidate();

// 會話重建
session=request.getSession(true);
  • 禁用客戶端訪問cookie

此方法也避免了配合XSS攻擊來獲取Cookie中的會話信息以達成會話固定攻擊。在Http響應頭中啓用HttpOnly屬性,或者在tomcat容器中配置。


CSRF

在這裏插入圖片描述
⚡️CRSF(Cross-site request forgery)跨站請求僞造,不攻擊網站服務器,而是冒充用戶在站內的正常操作,以你的名義發送惡意請求(包括虛擬貨幣轉賬、發送郵件、購買商品…),造成個人隱私泄露以及財產安全問題。
在這裏插入圖片描述
攻擊分析:
通常是由於服務器沒有對請求頭做嚴格過濾引起的。
🏡攻擊修復(服務端):

  • Cookie Hashing(所有表單都包含同一個僞隨機值)
    理論上攻擊者不能獲得第三方的Cookie(理論上),所以表單中的數據就構造失敗。
  <?php 
    //構造加密的Cookie信息 
    $value = “DefenseSCRF”; 
    setcookie(”cookie”, $value, time()+3600); 
  ?> 

在表單裏增加Hash值,以認證這確實是用戶發送的請求。

  <?php 
    $hash = md5($_COOKIE[\\\'cookie\\\']); 
  ?> 
  <form method=POST” action=”transfer.php”> 
    <input type=”text” name=”toBankId”> 
    <input type=”text” name=”money”> 
    <input type=”hidden” name=”hash” value=<?=$hash;?>> 
    <input type=”submit” name=”submit” value=”Submit”> 
  </form> 

然後在服務器端進行Hahs值驗證

<?php 
   if(isset($_POST[\\\'check\\\'])) { 
   $hash = md5($_COOKIE[\\\'cookie\\\']); 
   if($_POST[\\\'check\\\'] == $hash) { 
   doJob(); 
   } else { 
        //... 
   } 
   } else { 
      //... 
   } 
?> 

這個方法個人覺得已經可以杜絕99%的CSRF攻擊了,那還有1%呢…由於用戶的Cookie很容易由於網站的XSS漏洞而被盜取,這就另外的1%。

  • 驗證碼
    每次的用戶提交都需要用戶在表單中填寫一個圖片上的隨機字符串,Hmmm這個方案完全可以解決CSRF,但是易用性似乎不大好,而且聽聞驗證碼圖片的使用設計了一個被稱爲MHTML的Bug,可能在某些版本的微軟IE中受影響。
  • One-Time Tokens(不同表單包含一個不同的僞隨機值)
    在實現One-Time Tokens時,需要注意一點,就是"並行會話的兼容"。如果用戶在一個站點上同時打開了兩個不同的表單,CSRF保護措施不應該影響到他對任何表單的提交。考慮一下如果每次表單被裝入時站點生成一個僞隨機值來覆蓋以前的僞隨機值將會發生什麼情況:用戶只能成功地提交他最後打開的表單,因爲所有其他的表單都含有非法的僞隨機值。必須小心操作以確保CSRF保護措施不會影響選項卡式的瀏覽或者利用多個瀏覽器窗口瀏覽一個站點。

Vulnerable JavaScript Library

在這裏插入圖片描述
⚡️第三方 JavaScript 的安全問題.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章