web漏洞--认证缺陷

一、认识弱口令

弱口令概念:

网络安全中的弱口令是指那些容易被他人猜测或破解的简单密码。这类密码通常缺乏足够的复杂性和强度,无法有效抵御恶意攻击,使得攻击者能够轻松获取系统、账户或设备的访问权限。

常见表现形式

  • 使用简单数字组合:如 "123456""111111""000000" 等连续或重复的数字,设置起来简单,但毫无安全性可言。

  • 使用常见日期:包括生日(如 "19900101" )、纪念日等,这些信息可能会因为个人资料的公开而被他人知晓。

  • 使用键盘顺序:像 "qwerty""asdfgh" 等,攻击者可以通过常见的键盘布局规律轻松猜出。

  • 使用单一单词:例如常见的英文单词 "password""admin""abc" 等,这些在字典中能直接查到的单词很容易被破解。

带来的危害

  • 数据泄露:攻击者获取弱口令账户的访问权限后,可能会窃取系统中的敏感信息,如个人隐私数据、商业机密、财务信息等,导致用户或企业遭受重大损失。

  • 系统被操控:攻击者可以利用获取的权限对系统进行恶意操作,例如篡改数据、植入恶意软件、发起网络攻击等,严重影响系统的正常运行。

  • 服务中断:可能会通过弱口令入侵服务器,破坏服务器上的服务,导致网络服务中断,影响业务的正常开展,给企业带来经济损失和声誉损害。

形成原因

  • 用户安全意识不足:很多用户对网络安全的重要性认识不够,为了方便记忆,往往选择简单易记的弱口令,而忽视了密码的安全性。

  • 管理不善:一些企业或组织在密码管理方面缺乏有效的制度和措施,没有对用户密码的强度进行要求和定期更新,导致弱口令现象普遍存在。

  • 开发缺陷:部分软件或系统在开发过程中,没有对用户设置的密码进行强度验证,或者验证规则过于宽松,使得用户可以轻松设置弱口令。

防范措施

  • 设置强口令:使用包含大写字母、小写字母、数字和特殊字符的组合,且长度不少于 8 位的密码。例如,"P@ssw0rd123" 这样的密码就相对安全。

  • 定期更换密码:定期修改重要账户的密码,降低密码被破解的风险。建议每隔 3 - 6 个月更换一次密码。

  • 使用多因素身份验证:除了密码之外,还可以使用短信验证码、指纹识别、面部识别等其他身份验证方式,增加账户的安全性。

  • 加强安全意识培训:通过宣传和培训,提高用户对网络安全的认识,让用户了解弱口令的危害,自觉设置强口令。

二、字典生成

弱口令指的是容易被他人猜测或破解的简单密码,如 "123456""abcdef""password" 等。弱口令字典则是将大量这样的弱口令收集、整理到一个文件(通常是文本文件)中,每一行包含一个可能的弱口令,这个文件就被称为弱口令字典。而生成这个文件的操作就叫做弱口令字典生成。

用途

  • 安全测试:企业和安全人员可以使用自己生成的弱口令字典对内部系统、网络设备、应用程序等进行密码暴力破解测试,以发现系统中存在的弱口令漏洞,并及时采取措施进行修复,增强系统安全性。

  • 漏洞检测:在渗透测试过程中,渗透测试人员可以使用弱口令字典尝试登录目标系统的各种服务和账户,检测是否存在弱口令导致的安全漏洞。

风险和限制

  • 法律风险:如果在未经授权的情况下使用弱口令字典对他人系统进行攻击,这是严重的违法行为,会面临法律的制裁。

  • 效果限制:随着用户安全意识的提高,部分用户会使用较为复杂的密码,此时弱口令字典的破解成功率会降低。而且,一些系统采用了多重身份验证、登录失败锁定等安全机制,也会限制弱口令字典的使用效果。

生成方法

  • 基于公开数据

    • **泄露密码库:**利用已公开的密码泄露事件中的密码数据,整理出其中的弱口令部分。

    • **常见密码排行榜:**参考一些统计机构发布的常见密码排行榜,将排名靠前的弱口令收集到字典中。

  • **默认密码:**在物联网领域,不少设备都配备了 WEB 管理系统,其初衷是为了方便用户对设备进行使用和管理。然而,这类管理系统却普遍存在一个严重的安全隐患 ------ 弱口令漏洞。一旦攻击者发现并利用这一漏洞,设备的控制权就会轻易落入他人之手,进而导致设备面临极大的安全风险。

  • 常见网络安全设备弱口令:https://www.cnblogs.com/bflw/p/12938013.html

  • 网络安全设备常见弱口令:https://blog.csdn.net/qq_41617034/article/details/119633066

  • 结合目标信息:

  • 如果针对特定目标生成字典,可以收集目标的相关信息,如生日、电话号码、姓名拼音等,将这些信息组合成可能的弱口令加入字典。

  • 使用社工库:

    • 社工库并不是一个单一、特定的数据库,而是黑客或不法分子通过各种非法手段收集、整合的大量个人信息集合。这些信息涵盖了人们生活的多个方面,是对个人隐私的严重侵犯和非法汇聚。(不要自己搭建,可以借助其进行信息收集与知识收集)
  • 社工字典生成:

  • 社工字典生成是一种基于社会工程学原理,创建包含可能密码组合的字典文件的过程。社会工程学利用人类的心理弱点、习惯和信任来获取信息,社工字典生成则是将这种方法应用于密码猜测,为安全测试、漏洞检测或非法攻击提供工具。

  • 输入目标信息,猜测可能使用的密码。 https://www.bugku.com/mima/

三、弱口令爆破

Hydra 是一款功能强大且被广泛使用的开源密码破解工具,支持多种协议的暴力破解攻击,在网络安全领域既可以用于合法的安全测试

kali 下是默认安装的,几乎支持所有协议的在线破解。

密码能否破解,在于字典是否强大以及电脑的性能。

使用必须遵守以下前提:

  • 合法授权:仅针对您拥有权限的系统(如公司内网渗透测试、授权下的安全评估)。

  • 合规用途 :用于教育、研究或授权安全测试,禁止用于未授权的攻击

法律风险:

  • 未经授权使用 Hydra 属于违法行为,可能触犯:

    • 《网络安全法》

    • 《刑法》第285条(非法侵入计算机系统罪)

    • 其他国家的类似法律(如美国 CFAA)。

  • 后果:面临民事赔偿、行政处罚或刑事责任。

1、参数(需要时翻阅)

复制代码
-l login 小写,指定用户名进行破解
-L file 大写,指定用户的用户名字典
-p pass 小写,用于指定密码破解,很少使用,一般采用密码字典。
-P file 大写,用于指定密码字典。
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-M file 指定目标 ip 列表文件,批量破解。
-o file 指定结果输出文件
-f 找到第一对登录名或者密码的时候中止破解。
-t tasks 同时运行的线程数,默认是 16
-w time 设置最大超时时间,单位
-v / -V 显示详细过程
-R 恢复爆破(如果破解中断了,下次执行 hydra -R /path/to/hydra.restore 就可以继续任务。)破解 SSH 登录密码

2、实操:

一般来说Hydra合法使用对象为已经授权渗透的某公司服务器,所以以下所有案例都是适用于对公司服务器进行渗透。

实操1 与 实操2 均是对服务器远程链接账户进行爆破。

实操3 是对服务器HTTP请求进行爆破。

2.0、实操前须知:

不同操作系统下的远程登录协议:
操作系统 默认远程协议 端口 特点
Linux/macOS SSH 22 加密传输,支持命令行和文件传输
Windows RDP (Remote Desktop) 3389 图形化界面,支持音频/打印机重定向
跨平台场景 VNC 5900+ 图形化远程控制,需额外安装服务端
SSH与RDP的本质区别
Linux/macOS远程登录通常用SSH
  • 典型用途:远程管理Linux服务器,执行命令行操作。比如:程序员在购买云服务器后,通常不会配置图形化界面的linux操作系统,这个时候如果需要远程操作服务器通常用的ssh协议链接。
Windows远程桌面默认用RDP
  • **典型用途:**Windows办公环境 。比如:部分公司为了更好的管理企业开发人员,防止数据泄露,通常让远程桌面链接远控机房电脑,进行工作。

快速检测当前使用的协议

SSH连接:

运行 systemctl status ssh

RDP连接:

运行 netstat -ano | findstr 3389 (查看3389端口)

2.1、破解linux - ssh 登录密码

A公司聘请小王去渗透他们公司的服务器。服务器用到的是linux操作系统。

小王在收集了基础的渗透目标信息后,就可以优先排查目标系统是否存在弱口令问题。

目标主机ip: 127.0.0.1

语法:

复制代码
hydra -l 账户名 -P 密码本名.后缀 -t 线程数 -e ns  弱口令爆破对象ip地址  ssh
# SSH 是一种网络协议,主要用于在不安全的网络环境中提供安全的远程登录和命令执行功能。它通过加密技术,对传输的数据进行加密处理,确保数据在传输过程中的保密性、完整性和身份验证,防止数据被窃取或篡改。大部分情况下,与服务器的ssh服务都是开启的

实例:

复制代码
#先要确定 shh 是启动的
systemctl status ssh 
#指定 kali 账号 用 password.txt 文件 使用 3 个线程(同时爆破3个密码),爆破本地的 ssh
hydra -l kali -P ./password.txt  -t 3 -e ns  192.168.164.132  ssh
拓展 - windows远程访问kali:

1、检查是否能使用 ssh(返回地址是有ssh), 测试语法: where ssh

2、连接 Linux 服务器,链接语法: ssh 用户名@Linux的IP地址

2.2、破解 Window 登录密码

收集目标ip: 192.168.244.128(Windows2012)

语法:

复制代码
hydra -l 账户名 -P  密码本名.后缀  -t 线程数 -e ns  弱口令爆破对象ip地址  rdp
#命令中的rdp,它是 Remote Desktop Protocol 的缩写,即远程桌面协议。RDP 允许用户通过网络连接到远程计算机,并在本地显示远程计算机的桌面环境,以便进行交互操作,就好像在直接使用远程计算机一样。

实例:

复制代码
hydra -l administrator -P  ./password.txt  -t 3 -e ns  192.168.164.163  rdp
#  Hydra 工具要针对目标 IP 地址的远程桌面协议服务进行弱口令爆破攻击,尝试通过给定的账户名和密码字典来获取正确的登录凭证,从而获得对远程计算机的访问权限。
拓展 - window远程登录

1、打开远程桌面链接工具

2、输入ip地址点击链接

3、输入账户密码后登录

2.3、HTTP爆破

服务器搭建的页面:http://120.79.165.248/vul/auth/login.php

输入用户名密码,抓包

修改好之后点击开始攻击

四、越权漏洞基本概述

  • 定义:越权访问(Broken Access Control, BAC)是 Web 应用中因权限检查存在纰漏,导致攻击者通过低权限账户绕过验证,非法访问 / 操作其他用户或更高权限资源的漏洞。

  • 危害等级:被 OWASP 列为 Web 应用十大安全隐患第二名,因其存在范围广、危害大,可能导致用户数据泄露、权限滥用等严重后果。

漏洞分类

  • 垂直越权:不同权限等级间的越权,即低权限用户(如普通用户)通过绕过限制获取高权限角色(如管理员)的功能或数据访问权。。

  • 水平越权:同权限等级用户间的越权,即攻击者(如用户 A)访问同角色其他用户(如用户 B)的私有数据。核心原因是系统仅验证角色权限,未对数据归属做细分校验。

实战

第一步:Apache和mysql启动

第二步:在浏览器里面 输入 你的IP地址 就可以正常看到一个页面

第三步:把MetInfo4.0目录 复制到 WWW 的根目录下面

第四步:访问 http://自己的ip地址/MetInfo4.0/install/index.php

设置的管理员账号 admin 密码 123456

将MetInfo4.0解压到小皮根目录

把Apache打开后,在浏览器中输入IP地址

靶场搭建MetInfo4.0环境

将Apache服务打开好之后 在浏览器输入你的ip地址 就会出现搭建好的项目

php 中间件 数据库
php5.3.29(小皮的软件管理页面下载即可) Apache2.4.39 MySQL5.7.26

访问http://自己的ip地址/MetInfo4.0/install/index.php进行安装配置

接着访问http://自己的ip地址/MetInfo4.0/member/有一个注册会员的功能,随便注册两个账号,接着即可在数据库里面看到注册的账号信息

登录好之后,有一个修改信息的功能,可以修改密码

水平越权:jingming01和jingming02都是普通用户的账号,修改数据进行抓包(基本上所有的越权都需要抓包,观察数据包里面的参数)

修改jingming02的数据可以发现直接修改成功了,这就是典型的最简单的水平越权

然后就可以用更改之后的账号信息登录了

实战挖掘怎么找:

在请求包里面找到要修改的请求参数尝试修改,如果能够修改成功,如果是平行那就是水平,跨越了就是垂直

垂直越权:jingming01和jingming02都是普通用户的账号,修改数据进行抓包(基本上所有的越权都需要抓包,观察数据包里面的参数)

用修改之后的信息登录管理员后台可以发现登录成功,这就是垂直越权

挖掘思路:

关注"id","user_id","value","pid","post_id"等参数处、目录处,关注任何场景每一个可能决定用户权限的参数值。通过加和减1提交整数值,看是否可以看到本不该看到的数据,若返回403拒绝访问很可能说明没有漏洞。

相关推荐
heartbeat..10 小时前
注解 + 反射:Web 项目 Excel 一键导出工具 EnhancedExportExcelUtil 详解
java·excel·poi
lkbhua莱克瓦2410 小时前
IO流练习(加密和解密文件)
java·开发语言·笔记·学习方法·io流·io流练习题
阿珊和她的猫10 小时前
<video>` 和 `<audio>` 标签的常用属性解析
前端
嘟嘟w10 小时前
Servlet的生命周期
java
LSL666_10 小时前
4 jQuery、JavaScript 作用域、闭包与 DOM 事件绑定
前端·javascript·html
张较瘦_10 小时前
SpringBoot3 | SpringBoot中Entity、DTO、VO的通俗理解与实战
java·spring boot·后端
yinuo11 小时前
前端跨页面通讯终极指南⑤:window.name 用法全解析
前端
小飞侠在吗11 小时前
vue computed 和 watch
前端·javascript·vue.js
may_一一11 小时前
docker安装的redis状态一直是restarting
java·redis·docker