Burpsuite是一个功能强大的工具,也是一个比较复杂的工具

本节主要说明一下burp的intruder模块中的2个技巧

1、md5加密

我们在payload Processing中的add选项可以进行选择,Hash加密,md5的加密方式,进行md5进行解密

2、利用漏洞中验证码绕过的小技巧

1. 验证码不刷新

导致验证码不刷新的原因是:登录密码错误之后,session中的值没有更新,验证码不变。验证码不刷新通常有以下两种情况:无条件不刷新、有条件不刷新。

1.1无条件不刷新

无条件不刷新是指在某一时间段内,无论登录失败多少次,只要不刷新页面,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解。

1.2有条件不刷新

有条件不刷新多见于如下情况:登录失败之后,系统会打开一个新页面或者弹出一个新的警告窗口,提示用户登录失败,点击确定后返回登录界面且验证码刷新。这种情况下,只要我们不关闭新窗口或弹窗,配合使用Burpsuite的intruder模块就可以进行暴力破解了。

2.验证码前端可获取

这种情况在早期的一些网站中比较常见,主要是因为程序员在写代码的时候安全意识不足导致的。验证码通常会被他们隐藏在网站的源码中或者高级一点的隐藏在请求的Cookie中,但这两种情况都可以被攻击者轻松绕过。

2.1验证码隐藏在源码中

验证这种情况很简单,我们只需要记住验证码,然后右键打开网站源代码,Ctrl+F搜索,输入刚才的验证码,如果可以成功匹配到,那恭喜你,接下来就可以写工具,提取源码中的验证码并将其放入每次请求的报文中,来进行帐号破解,这里推荐使用python。

2.2验证码隐藏在Cookie中

这种情况,我们可以在提交登录的时候抓包,然后分析一下包中的Cookie字段,看看其中有没有相匹配的验证码,或者是经过了一些简单加密后的验证码。

3. 验证码空值绕过

验证码空值绕过,是在日常的渗透测试中很容易被我们忽略的一点,实际应用中我们可以通过直接删除验证码参数或者Cookie中的一些值来绕过判断,进行暴力破解。

4. 验证码易识别

在平常的漏洞挖掘过程中,如果我们发现登录的验证码非常简单且易于识别,那我们就可以尝试使用自动化工具来进行登录破解了,如PKAV的HTTP Fuzzer。

5. 存在无验证码页面

经过测试,如果我们发现网站验证码自身并不存在缺陷,那我们接下来就可以尝试寻找一些其他的登录页面或接口来尝试暴力破解。

5.1隐藏的页面

这种页面通常是留给测试人员使用的,或者是一些忘记删除的老界面,利用的前提是该界面依旧可用,一般情况下,我们可以通过扫描器来发现这种页面。

5.2 微信公众号、APP登录页面

很多网站的web登录页面已经做的相当完善了,但是却在微信公众后的绑定接口或者是APP的登录界面上面栽了跟头,在渗透测试的过程中,一定不要忘了对公众号和APP的测试。

6. 其他绕过方法

6.1万能验证码

渗透测试的过程中,有时候会出现这种情况,系统存在一个万能验证码,如000000,只要输入万能验证码,就可以无视验证码进行暴力破解。

6.2验证码无效

这种情况下,无论我们输入什么数据,验证码都会判断通过,验证码形同虚设,这种情况我只遇到过一次。

6.3验证码数量有限

多见于计算类型的验证码,如1+8=?,这种类型的验证码严格意义上来说不能叫做验证码,多刷新几次验证码,我们可能会发现系统中的算数题目只有那么几道,这种情况下只要将验证码全部下载下来,生成一个md5库,然后将前端生成的验证码与本地文件进行对比即可。

3、绕过验证码

方法1:

说起对存在验证码的登录表单进行爆破,大部分人都会想到PKav HTTP Fuzzer,这款工具在前些年确实给我们带来了不少便利。

反观burp一直没有一个高度自定义通杀大部分图片验证码的识别方案,这里我查到captcha-kille(https://github.com/c0ny1/captcha-killer)工具,希望burp也能用上各种好用的识别码技术。

其设计理念是只专注做好对各种验证码识别技术接口的调用!

说具体点就是burp通过同一个插件,就可以适配各种验证码识别接口,无需重复编写调用代码。

我们可以去github 下载 captcha-killer.jar 扩展,然后加载到burp中,各种调试成功试别爆破后就可以绕过验证码了

优点:基于 burpsite 开发的小插件,这个插件本身是不能试别验证码的,但是可以添加接口,这就非常方便使用了,直接百度搜索下一些收费或者免费的解码平台,然后配置进去即可,方便简单强大.

缺点:不知道是BUG还是什么情况,我总是遇到修改后的包的http头丢失字母,比如域名xx.com 丢失最后的m 经过各种换接口调试,终于解决了.

自身使用后缺点:需要不断的重新安装,比较麻烦

方法2:

切换到 Burpsuite 的 Project options的session选项卡,点击Macros下的add按钮

点击add按钮之后,这时候弹出两个窗口,一个是Macro 记录器,一个是Macro编辑器,Macro记录器是记录发送那些HTTP请求,Macro编辑器是编辑一些参数,比如具体截取响应报文中的哪一个参数等等

首先操作Macro记录器,点击选择我们要发送HTTP请求,然后点击右下角的OK按钮即可

然后开始操作Macro编辑器, 选择右侧Configure item, 在弹出的界面中找到’Custom parameter locations in response’区域,然后点击右侧的 Add按钮

在弹出的窗口中,首先给要截取得参数值命名,我这里命名为randcode ,然后用鼠标选择我们要截取的内容,这里就把randcode的三位数字的值选取了即可,如果出现如下界面就表示OK了

然后点击右下角的OK,然后在所有回到的界面中继续点击右下角的OK

至此,我们就配置完毕了Macro。

接着开始让Burpsuite 自动调用Macros,并替换经过代理的请求中的randcode的值

我们切换回Project options 的选项卡,找到Session Handling Rules

点击Add 按钮,在弹出的界面中找到Rules Action区域,点击下方的Add按钮,在弹出的下拉列表中选择Run as Macros,在弹出的界面中进行如下配置

点击ok,返回上一页面,切换到Scope标签,进行如下配置

点击ok,然后回到上一个界面继续点击ok,到此,配置完毕,接下来就爆破了

burp暴力破解之md5和绕过验证码的更多相关文章

  1. 渗透测试===使用BURPSUIT暴力破解某网站的手机验证码

      手机短信验证是企业给消费者(用户)的一个凭证,通过手机短信内容的验证码来验证身份.主要用来用户注册,找回密码,用户登录等等作为强身份认证. 目前验证码的格式主要是数字,从4位到6位不等.一般来说验 ...

  2. 关于暴力破解的一些学习笔记(pikachu)

    这几天的笔记都懒得发博客都写在本地了,随缘搬上来 什么是暴力破解 就是在攻击者不知道目标账号密码情况下的,对目标系统的常识性登陆 一般会采用一些工具+特定的字典 来实现高效的连续的尝试性登陆 一个有效 ...

  3. 暴力破解( Hydra | Medusa)

    暴力破解 By : Mirror王宇阳 笔者告知 : 暴力破解的结果是运气和速度的结晶,开始暴力破解前烧一炷香也是必要的! 引用张炳帅的一句话:"你的运气和管理员的安全意识成正比" ...

  4. [典型漏洞分享]YS的防暴力破解设计存在缺陷

    YS使用的防暴力破解机制存在缺陷,该缺陷可被用于暴力破解其它用户密码[高] 问题描述: YS在用户登录页面设置了验证码机制,当用户输入密码错误次数达到3次时,再次登录需要验证码以防止攻击者进行暴力破解 ...

  5. atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc

    atitit.短信 验证码  破解  v3 p34  识别 绕过 系统方案规划----业务相关方案 手机验证码  .doc 1. 手机短信验证码 vs 图片验证码 安全性(破解成本)确实要高一些1 1 ...

  6. Burp Suite渗透操作指南 【暴力破解】

    1.1 Intruder高效暴力破解 其实更喜欢称Intruder爆破为Fuzzing.Intruder支持多种爆破模式.分别是:单一字典爆破.多字段相同字典爆破.多字典意义对应爆破.聚合式爆破.最常 ...

  7. 暴力破解MD5的实现(MapReduce编程)

    本文主要介绍MapReduce编程模型的原理和基于Hadoop的MD5暴力破解思路. 一.MapReduce的基本原理 Hadoop作为一个分布式架构的实现方案,它的核心思想包括以下几个方面:HDFS ...

  8. sqli-labs-master less05 及 Burp Suite暴力破解示例

    一.首先测试显示内容 例:http://localhost/sqli-labs-master/Less-5/?id=1 http://localhost/sqli-labs-master/Less-5 ...

  9. Web攻防之暴力破解(何足道版)

    原创文章 原文首发我实验室公众号 猎户安全实验室 然后发在先知平台备份了一份 1 @序 攻防之初,大多为绕过既有逻辑和认证,以Getshell为节点,不管是SQL注入获得管理员数据还是XSS 获得后台 ...

随机推荐

  1. 精尽Spring Boot源码分析 - 内嵌Tomcat容器的实现

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  2. Spring Cloud 整合 Feign 的原理

    前言 在 上篇 介绍了 Feign 的核心实现原理,在文末也提到了会再介绍其和 Spring Cloud 的整合原理,Spring 具有很强的扩展性,会把一些常用的解决方案通过 starter 的方式 ...

  3. 【spring源码系列】之【Bean的属性赋值】

    每次进入源码的世界,就像完成一场奇妙的旅行! 1. 属性赋值概述 上一篇讲述了bean实例化中的创建实例过程,实例化后就需要对类中的属性进行依赖注入操作,本篇将重点分析属性赋值相关流程.其中属性赋值, ...

  4. iOS导入其他APP下载的文件(用其他应用打开)

    今天给自己的APP新增了一个小功能 可以打开iOS其他APPTXT 文件,一个很小的功能,做阅读APP的小伙伴不要错过. 附上APP地址: 一阅阅读 有想看小说的小伙伴可以试下 支持换源 支持自定义书 ...

  5. Camunda工作流引擎简单入门

    官网:https://camunda.com/ 官方文档:https://docs.camunda.org/get-started/spring-boot/project-setup/ 阅读新体验:h ...

  6. c语言格式字符

    格式说明由"%"和格式字符组成,如%d%f等.它的作用是将输出的数据转换为指定的格式输出.格式说明总是由"%"字符开始的. 格式字符有d,o,x,u,c,s,f ...

  7. C语言中的.h和.c文件

    1.h为头文件,.c为源文件,其实两者都是代码,没有实质性的区别,只是后缀不一样,是一种编程规范,主要是为了解决定义与调用之间的混乱. 2.h文件一般写一些函数声明.宏定义.结构体等内容:c文件是程序 ...

  8. Java | 一个".java"源文件中是否可以包括多个类(不包括内部类)

    第一种情况:(有public) 定义一个java源文件(Hello.java),里面只有一个类: public class Hello { public static void main(string ...

  9. c语言:结果不理解

    #include <stdio.h> int main() { int a;float b; scanf("a=%d,b=%f",&a,&b); pri ...

  10. C编译器

    GCC:GNU Compiler Collection,即 GNU 编译器套件.TDM-GCC 4.8.1 32-BIT Release: 查看GCC的版本:C:\Program Files\Dev- ...