暴力破解进化史

2023-01-11 0 680

暴力破解进化史

C8016A内部空间,攻守一役,四起

矛与盾的较量,攻与守的对撞

在这里,他们一同上看

伦理骇客选用了什么样秘密武器

公义国安怎样软硬兼施

在攻守对弈中,抹除是蓝队内网阻攻操作过程中必不可少的一个重要方式。其效率高,借助简单,反击投资收益大,除非赢得成功,常常等同赢得了通往内部网的锁匙。除强化使用者的风险意识,尽量防止弱紧急警报外,库季常常会在后端设下一层层心理障碍,提升普通使用者暴破公钥的准入门槛。责任编辑探讨了后端身份验证产业发展心路历程以及普通使用者绕开路子的产业发展,并借助于playwright架构得出了智能化暴破的新途径和有关实例标识符。

一、后端身份验证产业发展

为了应付普通使用者的抹除,控球方一般来说会选用相同形式展开身份验证。上面,他们如是说呵呵普通使用者是怎样应付相同身份验证形式的。

等距身份验证

特别针对公钥暴破,最单纯的防卫方式是透过后端选用等距身份验证,如AES和DES,来制止公钥展开成文数据传输。

暴力破解进化史

量、统计数据块大小不一、公钥等NSA统计数据,增容后可以透过撰写pythonJAVA对公钥词典展开身份验证。

暴力破解进化史

非等距身份验证和自定义身份验证算法

随着公钥学的产业发展,RSA2作为新一代非等距身份验证算法逐渐被运用到后端身份验证中,由于公私钥分离,这在一定程度上提升了普通使用者增容的准入门槛。

暴力破解进化史

此外,有些开发者会自定义身份验证函数对公钥字段展开身份验证。作为应付措施,普通使用者可提取网页中对公钥展开身份验证的那段JS标识符,透过BurpCrypto插件为intruder模块添加processor,把暴破的payload身份验证。

暴力破解进化史

webpack打包

随着前后端分离的热潮,webpack工具逐渐应用于vue等架构中。webpack除缩小项目体积,提升加载速度外,还对标识符展开了一定程度的混淆,极大降低了后端JS标识符的可读性。

暴力破解进化史

普通使用者若要对webpack打包的网站展开抹除,需要掌握JS断点增容等逆向技术,或挖掘到该网站的sourcemap泄露漏洞,借助.js.map文件来展开逆向还原,这给暴破带来不小的难度。

二、选用智能化测试工具绕开后端身份验证

那么,有没有一种形式可以忽略一切后端身份验证措施,模拟使用者在浏览器手动输入账号公钥呢?实际上,在Web智能化测试领域,常常选用Python等JAVA语言将以前的人为测试转化为机器测试,极大提升测试效率。他们可以借助于pyppeteer、selenium、playwright等Web 浏览器智能化工具来暴破账号公钥。

将playwright武装成爆破工具

Playwright 是微软在 2020 年初开源的新一代智能化测试工具,它的功能类似于 Selenium、Pyppeteer 等,都可以驱动浏览器展开各种智能化操作。

选用playwright模拟使用者登录操作

Playwright 目前提供了 Python 和 Node.js 的 API,这里他们选用python。

暴力破解进化史

首先,他们导入Playwright库中的sync_playwright模块,用于同步执行Playwright库中的函数。然后,标识符定义了一个主函数,用来执行浏览器操作。

在主函数中,首先定义了要访问的URL,以及登录的使用者名和公钥。然后,选用sync_playwright()函数创建了一个新的浏览器对象,并选用p.chromium.launch(headless=False)函数打开了一个新的浏览器窗口。为了方便观看效果,他们取消了默认的无头浏览器模式。

然后,选用browser.new_context()函数创建了一个新的浏览器上下文,并设置了本地语言为中文和忽略HTTPS错误。随后,选用context.new_page()函数创建了一个新的浏览器页面,并选用page.goto()函数访问了给定的URL。然后,选用page.once()函数注册了一个回调函数,用来处理页面中弹出的对话框。

接下来,标识符选用了两个page.locator()函数来填写登录表单中的使用者名和公钥。最后,选用page.get_by_role()函数找到了页面中的登录按钮,并选用click()方式点击了它,以完成登录操作。透过sleep语句,他们可以更直观地看到效果。

暴力破解进化史

透过响应包特征判断登录是否赢得成功

透过抓包他们可以发现,如果公钥不正确,响应包会出现Please enter valid LoginName and Password,他们可以以此为依据判断暴破是否赢得成功。

暴力破解进化史

他们可以定义一个新的函数on_response(),用来处理页面的响应事件。这个函数接收一个参数response,表示页面的响应付象。在函数中,首先选用response.finished()方式确保响应已完成,然后检查响应的URL和请求方式是否与预期的值相等。如果相等,则检查响应的文本内容是否包含特定的关键字,如果不包含,则表示登录赢得成功,打印出相应的消息。之后,他们可以选用page.on()函数注册上面定义的on_response()函数,用来处理页面的响应事件。有关标识符如下:

暴力破解进化史

暴力破解进化史

透过后端页面特征判断登录是否赢得成功

对于部分防护严密的网站,常常后端响应包经过身份验证,此时难以定位响应包特征,因此他们可以透过提取后端页面特征判断是否登录赢得成功,如最常见的标题。如果登录后标题还是带登录页、Login Page等特征,则说明账号或公钥错误,跳转回了登录页。

暴力破解进化史

透过OCR技术绕开图形验证码

如果登录界面存在验证码,他们可以选用OCR库或者第三方API帮他们识别验证码结果。这里他们选用国内开发者开发的ddddocr库。

暴力破解进化史

他们首先选用ddddocr.DdddOcr()函数创建了一个新的验证码识别器对象,然后定义了要访问的URL,以及登录的片文件,并选用ocr.classification()函数将图片中的验证码识别出来,再选用page.fill()函数将识别出的验证码填入输入框。

暴力破解进化史

透过模拟鼠标操作绕开简易滑块验证码

在实战中,他们经常也会遇到带滑块的验证码,这时就需要他们运用playwright的api模拟鼠标操作,标识符如下。

暴力破解进化史

暴力破解进化史

的位置和大小不一。他们透过对page.mouse对象展开操作,首先模拟鼠标移动到滑块中心位置,透过down方式按住滑块,然后透过move方式让滑块滑动到最右边,之后再用up方式将鼠标松开,这样他们就模拟了一个正常使用者的操作。

暴力破解进化史

三、结语

随着开发人员风险意识的强化,抹除的难度也在逐步提升,可以预见到的是将公钥成文数据传输的网站会越来越少。透过借助web的智能化测试工具,他们可以尽量模拟真实使用者的登录操作来突破后端防卫策略。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务