Web漏洞(五)防护功能相关漏洞
防护功能相关漏洞
防护功能失效
账号弱锁定机制
漏洞描述
低危漏洞,系统帐号锁定时间太短,账户在多次尝试失败后锁定时间低于 3 分钟。
漏洞挖掘
直接爆破,看锁定账户时间是否充分。
修复方式
多次输入登陆失败,锁定账户时间超过3分钟
图形验证码可自动获取
漏洞描述
低危漏洞,图形验证码过于简单,可使用工具自动化识别。且成功率高于95%。
漏洞挖掘
使用burp的插件captcha-killer-modified识别或reCAPTCHA识别联动burp进行爆破密码。
修复方式
使用安全性强的验证码,验证码应从以下方面保证其安全性:验证码长度不低于4位,至少同时包含数字、字母或汉字,增加干扰因素比如线条,避免使用容易被程序自动识别的验证码,验证码不应返回到客户端。
图形验证码绕过
漏洞描述
中危漏洞,常见的两种验证机制是图片验证码和短信验证码。设置验证码就是为了防止自动化攻击, 但是如果没有设计好的话就形同虚设。常见的几种图片验证码被绕过的场景:图片验证码输入一次正确可重复使用;图片验证码前端校验;图片验证码可被识别;验证码信息返回客户端等等。
漏洞挖掘
1)图片验证码输入一次正确可重复使用,输入正确的验证码,抓包不断重放。
2)图片验证码前端校验,查看源代码,搜索验证码,成功匹配后,就可以写入工具,提取源码中的验证码并将其放入每次请求的报文中,来进行帐号破解。或者是提交登录 > 抓包,然后分析数据包中的Cookie字段,寻找相匹配的验证码,或者是经过了一些简单加密后的验证码。
3)验证码空值绕过,可以通过直接删除验证码参数或者Cookie中的值来绕过判断,进行暴力破解。
修复方式
1.强制要求输入验证码,否则,必须实施IP策略。 注意不要被X-Forwaded-For绕过了!
2.验证码只能用一次,用完立即过期!不能再次使用
3.验证码不要太弱。扭曲、变形、干扰线条、干扰背景色、变换字体等。
短信验证码绕过&暴力破解
漏洞描述
中危漏洞,客户端验证是不安全的,可能导致任意账号注册、登录及重置任意用户密码等一系列问题。
漏洞挖掘
1)验证码长度短,可以爆破枚举进行利用。
2)验证码与手机号未绑定,抓包修改将短信发送到测试手机上。
3)抓包修改返回包,第一步,使用正常账号修改密码,获取验证码通过时服务器返回数据,保存该信息,第二步,抓包修改返回包修改成正确的返回包,看是否可以绕过。
修复方式
1.在服务器进行有效验证,手机号和验证码在服务器进行唯一性绑定验证。
2.在服务端限制验证码发送周期,设置时效,限制次数。
参数覆盖
漏洞描述
变量覆盖指的是可以用我们自定义的参数值替换程序原有的变量值,变量覆盖漏洞通常需要结合程序的其他功能来实现完整攻击。一般都是组合上传或者注入漏洞进行使用。
漏洞挖掘
如上传漏洞,原本一个文件上传页面,限制的文件扩展名白名单列表写在配置文件中变量中,但是在上传的过程中有一个变量覆盖漏洞可以将任意扩展名覆盖掉原来的白名单列表,那我们就可以覆盖进去一个PHP的扩展名,从而上传一个PHP的shell。
修复方式
变量覆盖漏洞最常见漏洞点是在做变量注册时没有验证变量是否存在,以及在赋值给变量的时候,所以我们推荐使用原始的变量数组,如$_GET、$_POST,或者在注册变量前一定要验证变量是否存在。
参考文章
https://zhuanlan.zhihu.com/p/261421915
关键逻辑判断前端验证
漏洞描述
关键逻辑仅在前端Javascript处进行验证,导致恶意操作可以绕过前端验证直接提交服务端并且达到目的。
【高危】前端进行校验,绕过之后可执行后续业务操作/获取服务器权限/修改用户信息/修改业务数据/验证码本地校验
【中危】前端进行校验,绕过用户名密码组成规则或对业务影响不大
漏洞挖掘
绕过前端验证。1.首先需要在source-overrides界面里面select folder for overrides,然后选择一个文件夹,并Enable Local Overrides。2.需要在source里面编辑javascript代码。要完成这一步首先需要在Network中定位javascript代码所在的文件夹。3.修改关键的js文件,右键文件, Save for overrides,保存成功后,文件边上会出现一个紫色的点,此时就可以编辑文件内代码了,切记修改后须手动保存。4.在删除逻辑判断并保存文件后,刷新网页,即可绕过。
修复方式
1.关键逻辑判断增加后端校验。
防护功能缺失
Cookies属性问题
漏洞描述
低危漏洞,Cookie属性缺乏相关的安全属性,如Secure属性、HttpOnly属性、Domain属性、Path属性、Expires属性等。
漏洞挖掘
直接抓包看就可以,一般都不会写这个漏洞。
修复方式
一个Cookie包含以下信息:
1)Cookie名称,Cookie名称必须使用只能用在URL中的字符,一般用字母及数字,不能包含特殊字符,如有特殊字符想要转码。如js操作cookie的时候可以使用escape()对名称转码。
2)Cookie值,Cookie值同理Cookie的名称,可以进行转码和加密。
3)Expires,过期日期,一个GMT格式的时间,当过了这个日期之后,浏览器就会将这个Cookie删除掉,当不设置这个的时候,Cookie在浏览器关闭后消失。
4)Path,一个路径,在这个路径下面的页面才可以访问该Cookie,一般设为“/”,以表示同一个站点的所有页面都可以访问这个Cookie。
5)Domain,子域,指定在该子域下才可以访问Cookie,例如要让Cookie在a.test.com下可以访问,但在b.test.com下不能访问,则可将domain设置成a.test.com。
6)Secure,安全性,指定Cookie是否只能通过https协议访问,一般的Cookie使用HTTP协议既可访问,如果设置了Secure(没有值),则只有当使用https协议连接时cookie才可以被页面访问。
7)HttpOnly,如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息。
全设置上就太棒了。。。
会话重用
漏洞描述
高危漏洞,账户退出系统如关闭浏览器或者注销登录后,会话仍可以使用。
漏洞挖掘
1.正常登陆,保留登陆的cookie或token。
2.关闭浏览器后或退出登陆后返回之前页面会话依然有效,或者粘贴cookie或token可以登陆系统。
修复方式
1.每次登录后都重置会话ID,并生成一个新的会话ID
会话失效时间过长
漏洞描述
低位漏洞,应用系统的会话失效时间过长。导致服务器性能受损,且由于过长的失效时间会导致可以被多次利用。
漏洞挖掘
系统登录后会话长时间不失效,使用系统功能,仍可正常使用。
修复方式
控制会话的时间,长时间不操作退出会话
防护功能滥用
恶意锁定问题
漏洞描述
不断输入错误的密码,可以恶意锁定任何帐户。
漏洞挖掘
对于测试账户,不断输入错误的密码,直到锁定为止。
修复方式
1.账户锁定后,不能继续使用认证功能。
2.认证功能防止自动操作,如添加图形认证代码。
短信炸弹
漏洞描述
应用系统未限制手机短信的发送次数和频率,造成短时间内大量短信发送至接收者手机,容易导致手机卡死不可用
【高危】可对任意手机号轰炸
【中危】只可对当前手机号轰炸
漏洞挖掘
任何涉及短信验证码发送的功能点,如用户注册、登录、转账等功能都可以抓包重放测试。
修复方式
1.增加验证码,发送一次短信,就需要填一次
2.限制ip在单位时间内发送短信数量以及每日单个手机接收短信数
3.限制每个手机号发送的时间间隔
邮件炸弹
漏洞描述
应用系统未限制邮件的发送次数和频率,造成短时间内大量邮件发送至接收者邮箱,造成大量垃圾邮件。
【高危】可对任意邮箱轰炸
【中危】只可对当前邮箱轰炸
漏洞挖掘
任何涉及邮件发送的功能点,如用户注册、登录、转账等功能都可以抓包重放测试。
修复方式
1.增加验证码,发送一次邮件,就需要填一次
2.限制ip在单位时间内发送邮件数量以及每日单个邮箱接收邮件数
3.限制每个邮箱发送的时间间隔
本文来自博客园,作者:九天揽月丶,转载请注明原文链接:https://www.cnblogs.com/-meditation-/articles/16148716.html