最近安全部门对WEB系统进行了一次漏洞整改,发现了某个系统存在验证码绕过风险。

  根据安全部门提供的信息,该漏洞构造场景是通过一层中间代理(Burpsuite Proxy)拦截客户端与服务端的请求,通过篡改报文中的账户信息,使用当前请求正确的验证码,从而无限次数的暴力破解账户信息(系统设计年代久远,当时设计可能对WEB攻击考虑不太全面)。

  先简单介绍下该系统的鉴权流程:

  用户输入账户信息+验证码(刷新页面或手动刷新验证码会从服务器获取验证码,但该验证码缓存于session中),服务端接收到账户信息+验证后会先校验验证码是否正确,若不正确则,返回反之与数据库做对比,符合则返回,客户端接收服务端的请求,若成功则跳转,返回根据不同的错误码提示相应信息,并重新获取服务端生成的新验证码,重新缓存。

  看完流程可以很容易想到一个问题:验证码此时并不会重置,一切重置验证码的操作都在浏览器,所以在Session不失效的时效内,可以无限重用验证码。

  下面示例使用Burpsuite(以下简称B) 拦截请求,暴力破解的场景。

  1.首先配置Burpsuite的代理监听

  Proxy->Options->Proxy Listeners->Add 以127.0.0.1:8080为例

  2.配置客户端网络代理(以火狐为例)

  选项->高级->网络->连接设置->使用手动代理 根据实际情况把代理设置为127.0.0.1::8080

  3.访问到系统登录页面,然后打开Burpsuite的拦截Proxy->Intercept->Intercept is on

  此时浏览器的请求就会被工具拦截了,任意输入账户信息+验证码登录,B拦截到请求后把验证码参数改为正确的验证码,然后把请求send to Repeater(编辑重发),因为对验证码的刷新操作都在于浏览器收到结果之后,所以此时修改用户名和密码的组合就可达到暴力破解的地步了

  ps:通过火狐自带的编辑重发请求的功能也可实现,详情请自行百度。

  搞清楚原理之后很容易想到的方法就是在每次验证码通过之后,我们尝试重置session中的验证码,并在入口加一层空的判断,若被重置过的,则提示验证码过期即可。

  但是仅仅这样也无法避免问题,session信息也可能被黑客得到,我们可以尝试把session信息缓存到第三方缓存系统中如Memcached,Redis等。这样系统入口安全问题又能得到进一步保障了。

  

  

WEB漏洞攻击之验证码绕过浅析的更多相关文章

  1. web常见攻击

    DoS和DDoS攻击 DoS(Denial of Service),即拒绝服务,造成远程服务器拒绝服务的行为被称为DoS攻击.其目的是使计算机或网络无法提供正常的服务.最常见的DoS攻击有计算机网络带 ...

  2. XXE漏洞攻击与防御整理

    一.漏洞原理 1.DTD 文档类型定义(DTD)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构.DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 内部的 DOC ...

  3. [web安全]Web应用漏洞攻击分析与防范

    网站攻击主要分为以下几类: (1) sql注入攻击 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.它是利 ...

  4. 绕过WAF进行常见Web漏洞利用

    前言 本文以最新版安全狗为例,总结一下我个人掌握的一些绕过WAF进行常见WEB漏洞利用的方法. PS:本文仅用于技术研究与讨论,严禁用于任何非法用途,违者后果自负,作者与平台不承担任何责任 PPS:本 ...

  5. Web安全之验证码绕过

    一,验证码绕过(on client) 首先让burpsuite处于抓包状态,打开pikachu的验证码绕过(on client)随意输入账号和密码,验证码先不输入,点击login,会提示验证码错误 然 ...

  6. Web 漏洞分析与防御之 CSRF(二)

    原文地址:Web 漏洞分析与防御之 CSRF(二) 博客地址:http://www.extlight.com 一.全称 跨站请求伪造(Cross-site Request Forgery) 二.原理 ...

  7. 黑客攻防技术宝典Web实战篇(二)工具篇DVWA Web漏洞学习

    DVWA是一个学习Web漏洞的很好的工具. DVWA全程是Damn Vulnerable Web Application,还有一个跟它一样好的工具尽在http://www.360doc.com/con ...

  8. WEB漏洞 XSS(一)

    1.xss的形成原理 xss 中文名是“跨站脚本攻击”,英文名“Cross Site Scripting”.xss也是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML ...

  9. [网站安全] [实战分享]WEB漏洞挖掘的一些经验分享

    WEB漏洞有很多种,比如SQL注入,比如XSS,比如文件包含,比如越权访问查看,比如目录遍历等等等等,漏洞带来的危害有很多,信息泄露,文件上传到GETSHELL,一直到内网渗透,这里我想分享的最主要的 ...

随机推荐

  1. 使用脚本监控windows服务的方法

    以下脚本可监控某一个windows服务,发现其停止就立即重启之. @echo off rem 定义循环间隔时间和监测的服务: set secs=60 set srvname="NetWin ...

  2. Android Studio中的Java控制台中出现乱码问题?

    今天在用Android studio 中敲代码时发现控制台出不了汉字,一打汉字全是乱码的.在此特供解决方案. 在Java的工程目录build.gradle下添加如下代码: 1.新版gradle tas ...

  3. 【20171028早】ubuntu 16.04 LTS 安装php遇到的问题

    背景: 10月28日的一个早上,老黑一如往常地练习,我测试不破坏,当时我找到sqli-libs 游戏,可是我没有立即开始,于是,奇妙的事情就由php开始了.ubuntu16.04安装相关环境 apac ...

  4. python自动化运维五:paramiko

    p { margin-bottom: 0.25cm; line-height: 120% } a:link { } paramiko是基于python实现的SSH2远程安全连接,支持认证以及密钥方式, ...

  5. [IR] Concept Search and LDA

    重要的是通过实践更深入地了解贝叶斯思想,先浅浅地了解下LDA. From: http://blog.csdn.net/huagong_adu/article/details/7937616/ 传统方法 ...

  6. Python Fabric远程自动部署简介

    Fabric是一个Python(2.5-2.7)库,用于简化使用SSH的应用程序部署或系统管理任务. 它提供的操作包括:执行本地或远程shell命令,上传/下载文件,以及其他辅助功能,如提示用户输入. ...

  7. zabbix3.2源码搭建

    首先环境是标准的lnmp 1.创建zabbix组和系统用户来管理 groupadd zabbix useradd -g zabbix  zabbix -s /sbin/nologin 2.在mysql ...

  8. Good Luck in CET-4 Everybody!

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...

  9. 可点击的icon按钮 无障碍 ARIA 可访问性

    最简单: <input type="image" src="email.png" width="14" height="14 ...

  10. 使用spring框架中的组件发送邮件

    首先进入自己的QQ邮箱,在设置中修改账户信息 然后来至底部  点击开启,再用手机发送对应信息到指定号码,然后点击我已发送  获取授权码  注意提示: 到这里,相信你已经开通了SMTP服务,这样就可以在 ...