java相关漏洞学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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相关漏洞学习的主要内容,如果未能解决你的问题,请参考以下文章