1. 程式人生 > >java相關漏洞學習

java相關漏洞學習

otp web應用 gin fun 檢測方法 post cti 文件 一次

  本文來自對看雪論壇一篇文章的學習的記錄:https://bbs.pediy.com/thread-210876.htm

一.認證的測試

  目前很多頁面在註冊前采用ajax,jquery無刷新判斷用戶名是否註冊,引入賬戶名枚舉問題

客戶端ajax代碼

  function validatorloginName(){

  var loginName=document.getElementById("uname").value;

  if(loginName==""){

  alert("用戶名不能為空");

  return;

}

  $.ajax({

  type:"POST",

  url:"ValidateName",

  data:"loginName="+loginName;

  success:function(data){

  if(data=="true"){

  alert("恭喜您,用戶名沒有被使用");

}else{

  alert("抱歉!用戶名存在");

}

}

});

}

修復方法:添加驗證碼,一次性token

二.非授權訪問

  產生原因:

需要登錄才能訪問的頁面,缺乏對用戶登錄會話,token進行驗證有效性判斷,導致非合法用戶,token可以訪問需要登錄才能訪問的頁面

檢測方法:

借助Dirbuster進行目錄猜解,點擊測試需要授權訪問頁面是否能在非授權情況下打開

修復方法:

在某個頁面文件包含一個用戶驗證會話/token是否有效的文件,或者新建過濾器

三.關於驗證碼容易出現的問題

1.驗證碼保存在cookie中,可以直接查看到

2,驗證碼在驗證失敗後沒有刷新驗證碼,導致暴力破解

3.驗證碼噪點或者扭曲度不高,導致可以用工具識別

四.手機otp認證繞過

存在風險:

  1,手機otp動態碼失效時間設計有問題,失效時間設置過長和動態碼位數過少會存在爆破風險

  2.動態碼發送之後,在網頁源代碼中顯示

  3.手機otp驗證結果在前端認證,修改返回狀態碼,可繞過

  4.是否可以抓包修改手機號,導致發送到攻擊者手機

五,會話固定漏洞:

  web應用程序沒有正確執行會話管理,例如用戶登錄前的會話cookie和登錄後的是一樣的,另外是當用戶點擊退出,session不會失效

  測試方法:觀察登錄前,登錄後,退出狀態下cookie,sessionId是否變化

修復方法:一旦用戶登錄成功,馬上invalidate用戶的會話

   文章後面的就不總結了,雖然有很多知識點都講的不是特別清楚,不過,總體來說,覆蓋的知識點還是挺全的,還有的話就是對於java語言特有的安全問題,比如ognl,容器配置的問題,都沒有講到,比較遺憾

  

java相關漏洞學習