弱口令之暴力破解

目录

前言

 弱口令与暴力破解介绍

漏洞挖掘实战专栏

个人介绍  

第一关:基于表单的暴力破解

绕过步骤

1.第一步抓包观察

2.使用burp的攻击模块

3.选择攻击模式以及爆破字典

​编辑 4.进行爆破

第二关 验证码绕过(on server)

绕过步骤

1.观察输入错误观察返回结果

2.输入正确观察返结果

3.进行发包测试

 4.重复发包测试

5.绕过验证码开始爆破

第三关 验证码绕过(on client)

绕过步骤 先观察

1.进行测试

​ 2.输入错误出现弹窗

3.进行验证推测

4.输入正确的验证码绕过

第四关 token防爆破?

绕过步骤

1.抓包进行观察

2.尝试重放

(1)直接重放

 (2)删除token进行重放

(3)观察返回页面进行分析

3.进行爆破配置

 总结


前言

        本来想在打靶场的同时结合实战案例放在一起进行分享,结果发现篇幅太长,也不利于看,就放在下一篇中结合着一起来看,当然我也会在下面的靶场中,写出具体的一些实战遇到的解释,

        为什么要着重来写这个,能用弱口令进入的页面是获得权限以及获取其他漏洞的最好方式了,实在没办法的话,采取其他战术.

 弱口令与暴力破解介绍

        弱口令是指容易被猜测或破解的密码,而爆破破解是一种通过穷举法尝试所有可能的密码组合以破解密码的方法

        弱口令通常指的是那些强度不高、容易被人猜到或者被破解工具所破解的密码。这类口令往往包含简单的数字和字母,例如“123”或“abc”,包括常见的生日日期、重复的数字和字母等。由于这些密码结构简单,没有混合使用大小写字母、数字及特殊字符,使得它们对渗透人员来说非常容易被识别和破解。 

         爆破破解则是一种基于穷举法的破解手段,它通过系统地尝试各种可能的密码组合直到找到正确的密码。这种方法对于人为设置的非随机密码尤为有效,因为人为设置的密码往往有一定的规律性,可以通过预设的密码字典或彩虹表来缩短破解所需的时间。在Web应用中,暴力破解常用于对应用系统的认证信息进行获取,渗透测试人员会使用大量认证信息尝试登录,直到得到正确的结果。为了提高效率,通常会使用自动化工具进行操作。

漏洞挖掘实战专栏

漏洞挖掘实战icon-default.png?t=N7T8http://t.csdnimg.cn/nU21v

个人介绍  

                                                       本人的小介绍,大佬勿喷

                                                      不知名普通本科院校

                                                     软件大二入坑网络安全

                                                  刚入坑教育SRC不到两个月

                                获得过两张985,211的漏报送证书,和一张教育部的证书

                                        参加过多个渗透实战项目,并取得不错的成绩

                                     获得过CNVD原创事件型漏洞证书,多个cnvd编号           

第一关:基于表单的暴力破解

        最常见的登录界面,使用弱口令失败,一般会采用爆破密码的方式,当然也会辅助性的结合逻辑漏洞,这个后面碰到再说

绕过步骤

1.第一步抓包观察

      先随便输入一个用户名和密码观察回显,然后再随便输入后,进行抓包,注意查看返回的提示.

        在实战中,一会出现和下面的提示一样的文字一般是红色,或者是弹窗一样的东西.下面提示账号或密码不存在. 

2.使用burp的攻击模块

然后将抓到的包发送的攻击模块,并将账号密码分别增加载荷

 

3.选择攻击模式以及爆破字典

        然后Attack Type选择Cluster bomb,这里我们需要进行账号密码的爆破,所以我们需要对两个参数进行palyload设置,然后选择设置是狙击手,也就是简单列表.然后我分别对两个参数进行字典的设置(选择字典导入或是复制字典,进行粘贴),然后开始

 4.进行爆破

这里因为用大字典跑的话,比较费时间,我就将提示里的账号密码放入到我自己构造的小字典中了.

 这里也是爆破出两个,其中提示给出了三个用户,我手动验证了一下发现有一个用户其实是错误的.

第二关 验证码绕过(on server)

绕过步骤

        这里就涉及到逻辑部分的漏洞了,因为开发人员的开发失误在爆破中我们常会通过逻辑漏洞辅助我们进行弱口令爆破

1.观察输入错误观察返回结果

        观察页面一般验证码做的很随意,就可以考虑,当然也会存在像若依的那样的有明显判别方式的验证码,可以尝试若依的弱口令或是其他方式进行测试了.

        首先观察一下,用户名和密码输入错误值,当验证码是错误值时,返回结果如下,提示验证码错误.

2.输入正确观察返结果

用户名和密码输入错误值,当验证码是正确值时,返回结果如下,提示用户名或密码不存在

3.进行发包测试

                                            把刚刚试的随便一个包send to repeater

 4.重复发包测试

      改成当前网页显示的验证码,send,发现response中提示的是用户名或密码不存在,说明验证码是对的.

5.绕过验证码开始爆破

      这就说明之前的猜想是正确的,只要网页没刷新,验证码在burp suite中可以多次使用,直接从repeater中把上图的请求包send to intruder,和上一关一样配置intruder

还是这两个用户可以进行登陆.

第三关 验证码绕过(on client)

绕过步骤 先观察

1.进行测试

用户名和密码输入错误值,当验证码是正确值时,返回结果如下,提示用户名或密码不存在

 2.输入错误出现弹窗

   这种也是在实站中常会出现的一种验证,但是发现这个一般是前端验证的可能性是非常大的.

      用户名和密码输入错误值,当验证码是错误值时,有弹框提示验证码错误,之前对用户名或密码的提示也没有清除.

3.进行验证推测

      那根据上面两张图,特别是验证码错误时有弹框这点,我怀疑用户名和密码是在后端验证的,但验证码是在前端验证的。右键检查页面的原代码,发现验证码的验证是从前端进行验证的,当然这里也可以将burp的抓包进行打开,如果输入错误的验证码后提交没有抓到包,那么证明是进行了前端验证,没有经过服务器.

4.输入正确的验证码绕过

      既然是前端检测,那直接用burpsuite发请求报文绕过前端就可以了,是前端验证,那么我们只需要输入正确的验证码,就可以抓到包了,burpsuite的proxy模块抓到的这个报文send to intruder.也可在burp中设置丢掉js或是在浏览器中禁用js就可以了,绕过了 

                        然后,我们进行上面第一关的操作,这里还是这两个用户可以进行登录

第四关 token防爆破?

绕过步骤

     这个目前在我测试的网站中,遇到过比较少了,基本存在token的都在一些接口处,现在的网站多使用cookie以及session进行验证了,基本就是进行爆破次数限制只能爆破5次. 

1.抓包进行观察

      首先还是观察~这关没有验证码了,用户名或者密码输错会提示用户名或密码不存在

 

      抓包后出现token那既然和token有关,我们用不一样的值login两次看看burpsuite抓到的报文有啥区别?把proxy模块抓到的两次登录的报文send to comparer对比一下,确实两次的token不一样,把proxy模块抓到的报文send to repeater,操作操作,观察一下有什么办法突破:

2.尝试重放

(1)直接重放

                    先尝试不改动token,直接重放,response中提示 csrf token error

 

 (2)删除token进行重放

                                 尝试删除token,response中什么返回结果都没有

(3)观察返回页面进行分析

      虽然前面两条路死了,但是尝试的时候发现response中网页源代码有一个type为hidden,name为token的input标签,value和request报文的token不一样,应该是下一个报文的token。那试一下把request中的token值改为response中的token值,再次send,返回了提示用户名或密码不存在,并且返回了下一次的token值

 

3.进行爆破配置

        根据以上结果,下一次request需要携带的token就是上一次response中html代码中的隐藏字段值,也就是说request中的token是可以从上一个response中提取的,那么还是可以暴力破解,只不过配置稍微复杂一点:

      首先position除了username和password再增加token,此外要注意Attack type选Pitchfork(payload一一对应,数量为最少的payload的数量)。.这里为啥要选Pitchfork而不能选Cluster bomb,尝试一下就知道了

      由于前面使用的用户名和密码payload列表都是适用于Cluster bomb的,而Pitchfork对payload的要求可能更高一些(需要提前整理好对应关系),我这里并没有把用户名和密码payload列表进行更改,不过通过这种方式确实实现了攻击。

        前两个payload就按照第一关进行配置,第三个payload type设置为Recursive grep

                        上图这个payload options是在哪里设置的呢?就是下图这里  

      确认上面这个设置之前我觉得保险起见应该在网页源代码里面观察一下有多少符合正则表达式的位置,从下图来看就这一个地方符合,那就妥了

      此外还有一个需要注意的地方是线程要设置为1,这是因为每次都要用上次response中返回的token,多线程就会乱套了。  

     可以发现有每次的token都不同,不过也证明了只要字典够大确实token也并不会影响爆破  

 总结

  是对自己在进行大量渗透测试后,返回来进行复盘,同时也能更好的辅助自己能够扩展更多的渗透思路,也也能对自己的之前的方法进行复习,个人比较喜欢复盘,每次都能够获得新的思考和感悟.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB中左边的大括号最后一行为什么会留很大的空白——解决

看了一些帖子说改字体,但是并没有什么用,在此给出亲测有效的方法:改变矩阵的行间距 先说一下问题 上图中留有大块空白 **解决办法:**光标放在矩阵上 格式——矩阵——更改矩阵,在矩阵设置中选中“行高相等”&#xff…

网络IO模型 select poll epoll的区别

epoll与select、poll的对比 1. 用户态将文件描述符传入内核的方式 select:创建3个文件描述符集并拷贝到内核中,分别监听读、写、异常动作。这里受到单个进程可以打开的fd数量限制,默认是1024。 poll:将传入的struct pollfd结构…

基于Springboot的社区防疫物资申报系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的社区防疫物资申报系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系…

插入排序的可视化实现(Python)

插入排序的Python代码 import tkinter as tk import random import timeclass InsertionSortVisualizer:def __init__(self, root, canvas_width800, canvas_height400, num_bars10):self.root rootself.canvas_width canvas_widthself.canvas_height canvas_heightself.nu…

MySQL学习笔记1(MySQL基础)

1.MySQL基础 1.数据库相关概念 ​ *数据库:存储数据的仓库,数据是有组织的进行存储 DtaBase(DB) ​ *数据管理系统:操纵和管理数据库的大型软件 DataBase Management System (DBMS) ​ *SQL:操作关系型数据库的编程语言&#…

抖音ip地址怎么换位置

抖音,作为一款短视频分享平台,已经成为了许多人展示生活、分享才艺的重要舞台。然而,在抖音的使用过程中,你是否想过更换自己的IP地址位置呢?更换IP地址不仅可以帮助你访问一些地域限制的内容,还可以为你的…

3D开发工具HOOPS助力CAM软件优化制造流程

在现代制造业中,计算机辅助制造(CAM)软件的发展已成为提高生产效率和产品质量的关键。为了满足不断增长的需求和日益复杂的制造流程,CAM软件需要具备高效的CAD数据导入、云端协作、移动应用支持以及丰富的文档生成能力。 Tech So…

node.js-模块化

定义:CommonJS模块是为Node.js打包Javascript代码的原始方式。Node.js还支持浏览器和其他Javascript运行时使用的ECMAScript模块标准。 在Node.js中,每个文件都被视为一个单独的模块。 概念:项目是由很多个模块文件组成的 好处&#xff1a…

09 JavaScript学习:对象

对象的概念 在计算机科学中,对象是一种数据结构,用于存储数据和方法(也称为函数)。对象可以包含属性(也称为成员变量)和方法(也称为成员函数),通过这些属性和方法可以描述…

开发必会:JWT技术揭秘,一次性拿捏

1. 引言 现在前后端分离项目已经成为 主流的开发模式,而在项目开发过程中多多少少都会接触到登录相关的业务,几乎是绕不开的一部分。而只要涉及到登录模块,大部分的开发中都会用提到一种叫做token的东西,顾名思义,tok…

c语言不难说C语言难的,已经说明你根本不适合计算机编程工作

对普通人来说C语言是学习编程的最佳入门语言,有效培养你的编程思维,你有了这个基础后去学其它语言,你会惊讶地发现原来其它语言原来这么好学,现在出现一个Python说小白最适合,在开始前我有一些资料,是我根据…

Proxyman Premium for Mac:网络调试利器,开发者首选!

Proxyman Premium for Mac是一款功能强大的网络调试和分析工具,专为开发者和测试人员打造。这款软件以其出色的性能和丰富的功能,帮助用户在网络开发和调试过程中更有效地分析和拦截网络请求,进行必要的修改和重发,从而进行更深度…

渐进时间复杂度O(n)

基本操作数 算法的运行速度受计算机性能的影响,所以通常考虑算法效率的不是算法运行的实际用时,而是算法运行所需要进行的基本操作的数量。 像加减乘除、访问变量、给变量赋值等都可以看作基本操作。对基本操作的计数或是估测可以作为评判算法用时的指标…

Java中的封装

package day32; ​ public class Person {private String name;private int age; ​public String getName() {return name;} ​public void setName(String name) {this.name name;} ​public int getAge() {return age;} ​public void setAge(int age) {if (age>120 || …

webstorm 设置大括号、问号、冒号、if 或for条件 、+-*/ 运算符等两侧的空格(2024-04-18)

在setting设置里面 我这里演示javascript 【Editor-Code Style-JavaScript-Spaces】 import {Component} from react 改为 的 import { Component } from react { }内部两侧都加空格 根据自己的需求设置 [ ]大括号内部两端的空格

GenVideo、SkelFormer、EfficientGS、HOLD、Motion Synthesis、Learn2Talk

本文首发于公众号:机器感知 GenVideo、SkelFormer、EfficientGS、HOLD、Motion Synthesis、Learn2Talk Enabling Stateful Behaviors for Diffusion-based Policy Learning While imitation learning provides a simple and effective framework for policy learni…

优维应用级数字化架构管理:让企业运维天堑变通途

在优维科技的产品视角中,数字化架构管理就像是一门精妙的艺术,它将上层应用模型的业务概念以可视化的方式呈现出来,使得业务逻辑和流程变得更加直观、清晰。我们将这样的管理方式理解为“给企业搭起一座桥梁”——在这座桥梁的搭建过程中&…

Langchain入门到实战-第四弹

Langchain入门到实战 Langchain中的提示词官网地址Langchain概述Langchain的提示词用法更新计划 Langchain中的提示词 语言模型提示模板是预定义的生成语言模型提示的方法。模板可能包括指令、少样本示例、特定任务的上下文和问题。LangChain 提供了创建和处理提示模板的工具。…

BMR:基于Boostrapping多视图的虚假新闻检测

一、概述 文章提出了三种视图信息来表示一篇新闻:文本、图像结构、图像语义。然后设计了改进的多门混合专家系统(iMMoE)来进行信息融合。保留单模态信息来保证特征对新闻的保真性,增加的多模态信息能保证不同模态的一致性&#xf…

【python】如何通过python来发送短信

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…