JavaWeb网络安全-弱口令自查

2024-01-02 17:50

本文主要是介绍JavaWeb网络安全-弱口令自查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.背景

项目中,创建用户没有校验密码强度,弱口令会导致一系列安全问题。然而用户表数据加密加盐,我们无法直接知道哪些用户使用了弱口令。
网络安全的首要步骤是检查系统中的弱口令。一旦网络攻击者获取了我们的弱口令并成功登录系统,他们几乎可以完全掌控系统。考虑到我们的系统涉及许多组件和依赖关系,一旦其中某个组件存在问题,整个服务器就有可能受到黑客攻击,甚至面临被彻底暴露的风险。因此,第二个重要步骤是关注漏洞,查看哪些组件(特别是权限、登录相关的组件)存在漏洞,并及时更新组件版本。通过更新组件版本,我们实际上能够预防很多可能的安全风险。

2.解决办法(1)Burp_Suite

Burp_Suite 是专业的网络安全领域工具,但使用需要一定的使用基础。可以使用Burp_Suite,进行校验。基本教程

在这里插入图片描述

3.解决办法(2)python测试脚本

使用简单,功能单一,可以应付快速测试。
以下是我们用于测试弱口令的脚本,其中包括约2万个需要测试的用户和100个弱口令。在最差情况下,时间复杂度为O(n^2)。这100个弱口令按照出现频次排序,常用密码排在前面。经过实际测试,我们系统总共花费了6个小时的时间。此外,在具备服务器性能冗余的情况下,我们可以采用多线程的方式进行同步测试,从而大大缩短测试时间。

import requests# 替换为你user表中的account
username_list = ['admin', 'zhangsan',...'LISI']# 存储了 100个最常用的弱口令密码
passwords = [ '111111', '123456', '123456789', 'a123456', 'a123456789', '12345', '111111', '123123', 'woaini1314', 'zxcvbnm', 'qq123456', 'password', 'abc123456', '123456a', '123456789a', 'abc123', '0', 'iloveyou', '1234567890', '1234', '1234567', '12345678910', '12345678', '5201314', '98754321', 'qwerty', '123456abc', 'princess', '147258369', '1111', 'qq123456789', 'q123456', 'woaini123', '5201314520', '1004', 'zxcvbnm123', 'asd123456', '123123123', 'woaini', 'woaini520', '654321', '123abc', 'woaini521', 'q123456789', 'aa123456', 'abcd1234', 'abcd123456', '135792468', '123456789', '123321', 'asd123', 'rockyou', '123456', 'abc123456789', '123456789', 'qwe123456', 'qazwsxedc', '0', 'qwe123', 'w123456', '12345678900', 'qwertyuiop', '123456789abc', '1314520', '123456789q', 'z123456', '1357924680', 'aini1314', 'nicole', '666666', 'aaa123456', '7894561230', '789456123', 'zxc123', 'asdfgh', 'daniel', '123456qq', '1234567891', 'qazwsx', 'monkey', 'babygirl', 'michael', 'zxc123456', 'www123456', 'ovely', 'jessica', '123698745', 'w123456789', '1234567899', '1472583690', '1314520520', '123456789qq', 'ashley', 'iloveu', '123456aa', 'asdfghjkl', 'michelle', '123qwe', '123456q']def check(username):url = 'http://localhost:8080/login'  # 替换为目标网站的登录URLdata = {'username': username}for password in passwords:data['password'] = passwordresponse = requests.post(url, data=data)if response.status_code == 200 and password!="默认初始密码":print('存在弱口令!用户名:{},密码:{}'.format(username, password))break# else:#     print('尝试使用密码 {} 登录失败'.format(password))if __name__ == '__main__':# print(len(username_list))for i in username_list:check(i)

利用 python check.py > week_password.text,可以将使用弱口令的用户导出到text文本中。

4. 后续处理

可以将弱口令用户暂时冻结,上线时提示修改密码。

这篇关于JavaWeb网络安全-弱口令自查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/563214

相关文章

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B