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

相关文章

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b