您的captcha验证码设置对了吗?

Web App 评估可能是当今最流行的渗透测试之一。它们非常受欢迎,以至于 Hacker One 和 Bug Crowd 等公共漏洞赏金网站为希望修复 XSS、SQL 注入、CSRF 等漏洞的公司提供了数百个程序。许多公司还拥有自己的赏金计划,用于向以下人员报告 Web 漏洞一个安全团队。在我们关于网络安全的 4 部分迷你系列博客文章中关注我们:

  • 登录门户安全101
  • 验证码做得对
  • 默默无闻的不安全感
  • 用户名发现

验证 码(完全 自动化 公共图灵测试 告诉计算机和 人类一部分 )是一种反自动化控制,在保护表单免受自动提交方面变得越来越重要。但是,仅仅因为您的表单上有验证码并不意味着您“做对了”。让我们回顾一下有关实施验证码的一些重要部分:

检查#1:可以重复使用吗?

这是我们最近遇到的一个例子:

 一切看起来都不错吧?该应用程序将不允许用户在不解决验证码的情况下登录,并且验证码对于计算机来说很难猜测,但对于人类来说相对容易解决。这是在 Burp 的代理中捕获的示例登录 POST 正文:

 您可以看到用户的用户名和密码与 CAPTCHA 的“哈希”和 CAPTCHA 的解决方案一起发送。如果 CAPTCHA 的“哈希”作为一次性使用条目存储在后端数据库中,在用户提交此登录请求时会被删除,那么一切都应该没问题。为了测试这一点,我们需要做的就是重复这个请求给服务器,如果服务器接受了重放的验证码提交,那么我们知道我们可以重用这个验证码提交来暴力猜测用户的登录凭据.

(Burp Intruder 用于在更改提交的密码时重放登录 POST 请求。即使我们在每个请求上重放相同的 CAPTCHA,但在第 86 次尝试时成功猜到了用户的密码。)

 最后,这个特殊的登录门户并没有保护他们的用户免受任何比更简化的登录过程的影响。每个用户都因需要解决验证码而感到不便,但攻击者可以通过解决验证码一次然后多次重放来绕过验证码。除了为 CAPTCHA 提供一次性使用的数据库条目外,应用程序还可以将 CAPTCHA 的 id 与用户的当前会话 cookie 值联系起来,并确保需要解决 CAPTCHA 的每个请求都对用户的会话进行查找以确定哪个用户应该解决的验证码。如果在没有会话 cookie 的情况下提交请求,或者重放相同的 CAPTCHA id,则请求应该自动失败。

检查#2:我需要解决它吗?

这是帐户注册页面上验证码实施失败的另一个示例:

 我们可以从这个例子中注意到什么?新帐户注册页面已经实施了验证码,但是一旦攻击者将新帐户的电子邮件地址输入到表单中,该表单就会对新帐户的电子邮件地址进行检查……无需解决验证码。攻击者可以使用这种不受保护的功能来暴力发现已经在网站上注册的电子邮件地址。这个特定的应用程序在他们的登录请求中使用电子邮件地址作为用户名(并且还使用了弱密码策略),因此我们能够通过在我们发现的电子邮件地址上尝试一个通用密码来登录到十几个单独的帐户。

检查#3:计算机很难解决吗?

以下是从最近的评估中获取的一些示例验证码:

 

 

 

这些验证码有什么特别之处?他们似乎使用种预定义的模板来放置字母(字母总是在同一个位置),总是包含 8 个字符,并且只使用英文字母表中的字母(26 种可能性)。OCR 程序在这些 CAPTCHA 的字符分析方面做得不是很好,但是通过一些简单的转换,我们能够获得以下结果:

 

 

 

 

OCR 在这些转换后的 CAPTCHA 上仍然表现不佳(使用 google 的 TESSARACT 库的匹配率低于 2%),但是对于坚定的攻击者还有另一种可能性:解决每个位置的字母并将它们存储在数据库中以用于解决未来的验证码。一个简单的程序可以向攻击者显示特定位置的字母,然后将单个字母/位置组合存储在数据库中,以便为所有后续验证码进行匹配。这将需要攻击者手动输入 26 x 8 = 208 个单独的字母/位置组合,但随后计算机可以使用攻击者存储的信息来解决此特定应用程序上可能存在的大多数验证码。

 

解决 208 个不同的字符位置只需要几分钟(尽管编写代码需要几个小时),因此只有当 CAPTCHA 的请求具有很高的价值时,攻击者的回报才值得。

总体而言,该脚本能够以 70% 的准确率解决这些验证码。以下是一些示例结果:

大多数攻击者不会花费所需的时间来解决这种类型的 CAPTCHA,除非他们正在保护一些非常敏感的东西,所以在我们展示的三个坏例子中,这是最好的,因为应用程序 DID 需要解决 CAPTCHA在每次提交时,并且不接受重播的验证码请求。这种类型的 CAPTCHA 通过增加额外的复杂层来提供“足够好”的保护,防止机器人自动提交。

另一个转换示例

尽管我们第一个示例中的 CAPTCHA 存在缺陷,因此无需通过 OCR 解决它们,但这里有一个示例,说明如何转换 CAPTCHA 以使其更容易在自动攻击中识别:

原始图像  

        

 

 

 

 

 

转换后的图像

 

 

 

 

这是用于转换第二组验证码的相关 python 代码:

def change_to_white(data, r, g, b):target_color = (red == r) & (blue == b) & (green == g)data[..., :-1][target_color.T] = (255, 255, 255)return data
im = Image.open(startimagepath)
im = im.convert('RGBA')data = np.array(im)   # "data" is a height x width x 4 numpy array
red, green, blue, alpha = data.T # Temporarily unpack the bands for readability
colors = []
for x in range(0, len(red[0])): # Cycle through the numpy array and store individual color combinationsfor i in range(0, len(red)):color = (red[i][x], green[i][x], blue[i][x])colors.append(color)
unique_colors = set(colors) # Grab out the unique colors from the image# Cycle through the unique colors in the image and replace all "light" colors with white
for u in unique_colors: if sum(u) > 220: # Consider a color "light" if the sum of its red, green, and blue values are greater than 220data = change_to_white(data, u[0], u[1], u[2])# save the new image
im2 = Image.fromarray(data)
im2.save(imagepath)

谷歌解决了他们自己的 reCAPTCHA

虽然 Google 已经改进了他们的 reCAPTCHA,但有一个概念证明 github 项目将使用 Google 的语音识别服务来解决他们的 reCAPTCHA 的音频部分。项目信息可以在这里找到:  https ://github.com/ecthros/uncaptcha

包起来

Web 应用程序漏洞仍然是组织面临的重大风险。Silent Break Security 了解安全的进攻性和防御性思维方式,可以帮助您的组织通过更复杂的测试和协作补救更好地预防、检测和防御攻击者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/50075.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软验证码项目 Captcha Code Demo 从 .NET Core 1.1.2升级到2.1.0

How to make and use captcha code in ASP.NET Core 在ASP.NET Core 中如何实现 captcha 验证码 这个 Demo 是在微软 msdn 中找到的,早期 2017年6月30日发布。发现它的时候是 2019年10月30日。这时候 .NET Core 版本 3.0 已发布。Visual Studio 2019 也已经自动更新…

【文心一言】广告文案、演讲稿与请假条自动生成

前言 作为一名大学生而言,平时参加或者举办一些学校组织的活动的时候,总是避免不了需要准备一些演讲稿、广告宣传文案等内容,甚至于在疫情十分严重的这几年内,如何跟老师“委婉的”请假,也成为了我日常头疼的事情。但在…

如何设计好一条推送通知

你注意过么,每天从不同的 App 上收到的大量的推送通知与提醒,这些通知里有多少你真的有兴趣? 智能手表屏幕上无意义的通知 每天,用户对各种没用的通知应接不暇,这些通知让他们分散注意力,甚至成为了骚扰。骚扰的通知…

通知栏消息文案写作干货:个推手把手教你写

去搜一搜消息推送的入门秘籍、干货精华,始终绕不开“推送有价值的信息很关键”,其载体则是走心的文案,那么对于APP运营人员来说,什么样的推送文案称得上“优秀”?本文结合部分APP的通知栏消息案例,从中规中…

通告,消息,提醒,设计

通告Bulletin: 平台发,用户收。分为实时通告和非实时通告。通告有优先级:紧急,高,普通。 平台向单个用户发,平台向多个用户发,平台向某一个用户类型发,平台向全部用户发。 平台发布通…

Twitter注册如何做到ip防关联

因为Twitter还可以用来做广告,所以很多跨境电商都是通过Twitter来工作的。对于这些用户来说,一个Twitter账号肯定是不够的;多个账户需要同时操作。但是,如果你使用相同的浏览器或相同的ip地址,你很快就会决定询问关联的…

IP-GUARD控制台账户输入多次错误密码锁定后该如何解锁?

其他管理员账户给锁定了,暂时只能等其锁定时间到了才可以再次输入,默认是设置是锁定30min; 1、如果急需此账户查看,可以使用admin系统管理员账户登录控制台,在工具-账户中清除这个账户的密码,重新登录设置密码。

Oracle用户被锁查哪个具体IP地址造成的

Oracle用户被锁查哪个具体IP地址造成的 1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 SQL> alter session set nls_date_format‘yyyy-mm-dd hh24:mi:ss’; Session altered. 2、查看具体的被锁时间 SQL>…

在 Linux 下利用ipset大量屏蔽恶意 IP 地址

很多情况下,你可能需要在Linux下屏蔽IP地址。比如,作为一个终端用户,你可能想要免受间谍软件或者IP追踪的困扰。或者当你在运行P2P软件时。你可能想要过滤反P2P活动的网络链接。如果你是一名系统管理员,你可能想要禁止垃圾IP地址访…

EasyCharts,简单易用的Excel图表插件

EasyCharts是一款简单易用的Excel插件,主要有一键生成Excel未提供的图表、图表美化、配色参考等功能,轻轻松松就能搞定需要通过编程或者复杂操作才能实现的图表啦! 以下展示插件中的部分图表类型。

分享一款好用的图表制作软件,简单、美观又高效!

换新工作后,老板给我一个任务,让我每周制作数据报告,辛苦做了半天,谁知道老板是一个“颜值即正义"人,嫌弃我的图表不好看,好惆怅。然后一个同行的好朋友给我分享了一款好用的图表制作软件—BDP&#x…

2021-07-19 .NET高级班 113-AmCharts实时图表的使用

@{ViewData["Title"] = "Index"; }<div class="row"><div class="col-lg-3 col-md-3 col-sm-6 col-xs-12"><div class="dashboard-stat blue">

一款简单、实时、酷炫的图表制作软件

当今&#xff0c;图表制作已经成了每一个职场人的日常&#xff0c;如果列个职场基本傍身技能排行榜&#xff0c;图表制作怕是前三了。虽说它是工作日常&#xff0c;虽说它很重要&#xff0c;但很多人还是做不好图表。 比如&#xff0c;我们想象中的图表可能是这样的&#xff1a…

动态数据可视化图表制作,我只用这款软件

相信很多数据人都会困扰一个问题就是&#xff0c;同为数据分析师&#xff0c;为什么我做的动态数据可视化图表又费时又费力还看起来不咋地&#xff0c;而别人做动图就是轻轻松松还高大上&#xff1f; 在这里&#xff0c;小编分享几个优秀动态数据可视化图表需要具备的几个要素…

非常棒的在线图表模板工具 - Chart Chooser

Chart Chooser非常棒的在线图表模板工具&#xff0c;可以根据自己的需求选择不同的图表展现 网址&#xff1a;http://labs.juiceanalytics.com/ 有哪些软件堪称「神器」&#xff0c;却不被大众所知&#xff1f; https://www.zhihu.com/question/36546814/answer/84509117 有哪…

Qt制作图表生成器

基于Qt中的QCharts模块制作图表生成器软件 添加模块 QT charts; 添加命名空间 using namespace QtCharts; 该软件可制作多种图表 多样化主题设置 保存移植便捷快速 输入相关数据,自动生成对应图表 饼图 void MainWindow::CreatePie(int num,QString title,QString text…

.NET图表控件TeeChart for .NET使用教程:构建图表

本文主要介绍TeeChart for .NET使用教程中关于图表显示属性的相关内容。 图表显示特性是那些影响的整体外观图。他们包括属性和方法定义的颜色图表背景、标题和他们的立场,利润率,边界和凸凹变化,背景图像,框架和轴可见,笔颜色和宽度,3 d,墙壁等。 几乎所有这些属性可以通过Te…

.NET报表控件TeeChart使用教程:构建图表

TeeChart for .NET 是优秀的 4.0 WinForm 图表控件&#xff0c;官方独家授权汉化&#xff0c;集功能全面、性能稳定版、优惠等优势。NET 的 TeeChart for .NET 中文承诺让您在使用和学习上没有语言障碍&#xff0c;最少可以节省 30% 的开发时间。 本文主要介绍关于开始使用的第…

Luckysheet 图表(chartmix)

快速搭建luckysheet 第一步 这里用文档给的CDN方式引入 <link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/css/pluginsCss.css /> <link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/luckysheet/dist/plugins/plugins.css />…

9个可视化图表在线制作工具,总有一款适合你

这份清单包含了最受欢迎的大数据可视化分析的工具&#xff0c;无论你是需要对数据进行分析&#xff0c;还是利用可视化图表向你的客户或同事进行展示&#xff0c;该表单中总会有一款工具能够满足你的需求。 数据可视化无处不在&#xff0c;无论是PPT演示还是用可视化概念来细分…