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

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

解决SpringBoot启动报错:Failed to load property source from location 'classpath:/application.yml'

《解决SpringBoot启动报错:Failedtoloadpropertysourcefromlocationclasspath:/application.yml问题》这篇文章主要介绍... 目录在启动SpringBoot项目时报如下错误原因可能是1.yml中语法错误2.yml文件格式是GBK总结在启动S

Spring中配置ContextLoaderListener方式

《Spring中配置ContextLoaderListener方式》:本文主要介绍Spring中配置ContextLoaderListener方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录Spring中配置ContextLoaderLishttp://www.chinasem.cntene

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码