接上篇
1.验证码复用
漏洞描述:
当服务器端受理请求后,没有将上一次保存的session及时清空,将会导致验证码可重复使用
通常情况下在网站注册、登录、找回密码等页面都会设计验证码验证。如果设计不合理,将会刀子验证码在验证成功一次之后,下次使用的就不在验证也就说可以重复使用
案例:
可以看到此处前端登录虽有验证码验证,但是只验证一次。后续可一直使用该验证码
测试方法:发送到repeater模块多次发包,查看是否提示验证码错误
第一次发包:

第二次发包:
提示验证码错误

第三次发包输入页面已经更新后的验证码,
发现不在提示验证码错误

第四次发包同样不提示,此时验证码就已失效,可造成暴力破解

修复建议:
当服务器端处理完一次用户提交的请求之后,及时将 session域中的验证码清除,并生成新的验证码。
2.验证码为空绕过
当验证码为空时,则不进行验证码验证。在进行测试也可以试试null 有时会有意外收获


3.token可预测
当我们进行重复发包时,提示token错误,说明token已过期

但是在返回包中,我们可以看到重新生成的token,由此漏洞产生

破解模块设置

给第一个添加字典

在options设置响应token

重定向设置 总是,线程设置为1


Pyload设置递归搜索,给定一个初始token

开始暴力破解,成功解出

4.验证码过于简单可被识别

使用到的工具:Pkav HTTP Fuzzer 1.5.6

将抓到的数据包填入工具中设置

此处设置字典

验证码设置:
验证码地址,清晰的数字

点击识别测试

重放选项设置,302重定向,长度固定4位

出现验证码错误重试

开始发包

5.登录认证绕过
漏洞描述:
有的登录页面可以通过禁用js样式(不常见),能轻易的绕过登录认证,直接进入系统。或者是通过burp抓报改包进行登录绕过也是可以的(常见一点)
示例:
设置拦截响应包:

开启拦截:



把302 found改成200

成功登录

风险分析:
如果应用程序在认证上没有做好,可以导致恶意用户或者攻击者绕过认证,访问内部资源,这类漏洞通过防火墙和入侵检测系统很难预防。
修复方案:
可从以下几个方面预防认证绕过:
增加验证码,不使用前端验证,密码通过加密算法加密,失败次数多加锁,密码强度增加
6.短信验证码可暴力破解
漏洞描述:
短信验证码位数太短或有效期太长导致可暴力破解
测试方法:
点击发送短信验证码,输入任意验证码,提交请求,使用burpsuite拦截请求,在intruder模块设置验证码参数为枚举变量,这是payload类型为numbers,对验证码进行暴力破解。

修复方案:
1.短信验证码不少于6位;
2.有效期不超过1分钟;
3.验证码错误次数超过上限应采取账户锁定策略。
5.XSS跨站脚本漏洞
漏洞描述:
跨站脚本攻击的英文全称是Cross Site Script,为了和样式表区分,缩写为XSS。发生的原因是网站将用户输入的内容输出到页面上,在这个过程中可能有恶意代码被浏览器执行。跨站脚本攻击,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。已知的跨站脚本攻击漏洞有三种:1)存储式;2)反射式;3)基于DOM。
测试方法:
1、GET方式跨站脚本:
在输入的参数后逐条添加以下语句,以第一条为例,输入http://www.exmaple.com/page.xxx?name=
文本输入框:需要对页面上所有可以提交参数的地方进行测试。具体跨站脚本的测试语句根据实际情况的不同而不同,可自行构造,以及触发事件等切换,这里只列出了一些最常见构造语句。
示例:登录窗口验证码处存在反射型XSS注入

点击登陆,成功弹出内容

风险分析:
攻击者可以使用该漏洞构造钓鱼链接,诱骗受害者访问并填写用户名和密码,从而窃取用户的认证凭据
修复方案:
1、总体修复方式:验证所有输入数据,有效检测攻击;对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。