java相關漏洞學習
本文來自對看雪論壇一篇文章的學習的記錄: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相關漏洞學習