图形验证码可自动获取(水)

admin 2022年6月13日11:19:31评论317 views字数 1920阅读6分24秒阅读模式

写在前面

    最近在一边学习红队的内容一边参与红队项目,但是学到的东西还不够支撑发一篇推送。先分享之前看别的师傅的渗透报告学到一个新漏洞,需要水报告的师傅可以看一下。结合这个工具,也可以达到验证码识别+暴破的效果。




目录

·漏洞描述·测试方法·风险分析·风险等级·修复方案

图形验证码可自动获取(水)




漏洞描述

    图形验证码过于简单,可使用工具自动化识别。



测试方法

    利用Python Image Librarytesseract-ocrpytesserpython第三方库,经过二值化、文字分割等操作识别验证码。这里用的是github上的captcha-killer项目改编的一个工具。验证的过程就是先抓到请求验证码的包,重放后抓到返回包。本地开启一个验证的python脚本,把返回包发到python服务验证后返回到burp。

    下载地址:

https://github.com/f0ng/captcha-killer-modified

    环境安装,这里ddddocr用到了国内的镜像,下载速度会快一点:

pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simplepip3 install aiohttp

    python脚本,我这里设置运行在18888端口

import argparseimport ddddocr                       # 导入 ddddocrfrom aiohttp import web

parser = argparse.ArgumentParser()parser.add_argument("-p", help="http port", default="18888")args = parser.parse_args()

ocr = ddddocr.DdddOcr()port = args.p



async def handle_cb(request): return web.Response(text=ocr.classification(img_base64=await request.text()))

app = web.Application()app.add_routes([ web.post('/reg', handle_cb),])

if __name__ == '__main__': web.run_app(app, port=port)


    测试方法:页面点击刷新验证码,burp抓包,右键发送到captcha-killer-modified工具。点击获取重放,抓到返回包,把返回包发送到18888端口识别。


图形验证码可自动获取(水)


    左下角发送的数据包:

POST /reg HTTP/1.1Host: 127.0.0.1:18888Authorization:Basic f0ngauthUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:97.0) Gecko/20100101 Firefox/97.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: keep-aliveUpgrade-Insecure-Requests: 1Content-Type: application/x-www-form-urlencodedContent-Length: 8332

<@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>

    这个modified的可以识别关键词。如果返回包返回的验证码不是图片是base64数据,也可以专门设定关键词,如图

图形验证码可自动获取(水)


风险分析

    验证码通常使用一些线条和一些不规则的字符组成这些字符通常同时包含字母和数字但有些Web程序设计的验证码较简单,仅由数字或字母组成,且生成的验证码字符排列规整,很容易被程序自动识别。


风险等级

    【中危:图形验证码可被自动化识别,且成功率高于95%


修复方案   

    使用安全性强的验证码,验证码应从以下方面保证其安全性:验证码长度不低于4位,至少同时包含数字、字母或汉字,增加干扰因素比如线条,避免使用容易被程序自动识别的验证码,验证码不应返回到客户端。




写在最后

    梅雨季节到了,大家注意防潮防霉呀。


原文始发于微信公众号(云下信安):图形验证码可自动获取(水)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月13日11:19:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   图形验证码可自动获取(水)https://cn-sec.com/archives/1111600.html

发表评论

匿名网友 填写信息