JavaWeb网络安全-弱口令自查

news2024/11/16 1:36:56

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'  # 替换为目标网站的登录URL
    data = {'username': username}
    for password in passwords:
        data['password'] = password
        response = 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. 后续处理

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用MAP函数计算一系类数字的平方

1 问题 如何使用map函数计算一系列数字平方。 2 方法 通过使用定义函数(add),创建一个list,包含这一系列数字,再使用map函数。 通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。 代码清…

linux更改 docker 为非 root 用户运行

首先创建docker用户组,如果docker用户组存在可以忽略 sudo groupadd docker把用户添加进docker组中 sudo gpasswd -a ${user} docker使用普通账户重启docker sudo service docker restart使用root用户修改/var/run/docker.sock权限 sudo chmod arw /var/run/doc…

【Flink】Flink 中的时间和窗口之水位线(Watermark)

1. 时间语义 这里先介绍一下什么是时间语义,时间语义在Flink中是一种很重要的概念,下面介绍的水位线就是基于时间语义来讲的。 在Flink中我们提到的时间语义一般指的是事件时间和处理时间: 处理时间(Processing Time),一般指执…

git介绍和安装/git,github,gitee,gitlab区别/git使用流程/ git常用命令/git忽略文件

git介绍和安装 # 版本管理软件-1 对代码版本进行管理---》首页功能完成---》课程功能完成---》可以回退到某个版本-2 协同开发--》多人开发--》合并代码---》可能会有冲突,解决冲突# 版本管理软件:主流就两个-git:现在用的最多(学…

100天精通Golang(基础入门篇)——第10天:Go语言中的数组

🌷 博主 libin9iOak带您 Go to Golang Language.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《I…

python与adb无缝衔接控制手机(手机截屏实例)

目录 连接 常用操作 截图到PC端 使用pure-python-adb库可以实现python控制手机,支持input输入,支持shell命令,支持pull/push上传下载文件等。 安装库:pip install pure-python-adb 电脑端需要安装adb程序,在命令行…

技术管理第二板斧建团队-建机制

1.机制作用? 站在团队的角度,建机制尤为重要,你要通过机制让团队有统一的行为与规则,让组织像人一样,言行举止有规律可循。 听起来很容易,可要设计一个有效、持续发挥作用的机制并不简单。你不但清晰地认识…

10 Debug功能及方法简述

常见的Debug方法 原文链接:MDK5 Debug调试方法总结_keil5debug调试_小z不会累~的博客-CSDN博客 连接好硬件DAP之后,需要进行一些设置 开始仿真调试 Debug调试按钮分别对应的功能 按钮1->reset复位按钮按钮2->run按钮,程序运…

Keil V5版本开发STM32缺少PACKDFP解决办法 (Error Flash Downloadfailed-“Cortex-M7)

Keil V5版本开发STM32缺少PACKDFP解决办法 Error Flash Downloadfailed-“Cortex-M7 这个网址里有各个固件包的最新版,下载速度快,滋溜一下就下好啦 固件包

CISP-PTE-考前综合题记录

CISP-PTE-考前综合题记录 http://10.1.10.71/(文件上传传不上去) 获取key6 端口扫描只扫到80端口开放 输入用户名密码,抓包 对Authorization Basic的值进行base64解码,为爆破做准备 猜测用户名为admin,所有留下admin:这一段…

设计模式第15讲——模板模式(Template)

目录 一、什么是模板模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构 5.1 OrderFood——抽象类(Abstract) 5.2 具体类(Concrete Class) 5.3 testTemplate 六、总结…

JMeter工具使用

1. Jmeter设置语言为简体中文 2. Jmeter添加线程组 3. Jmeter添加http请求 4. Jmeter添加数据统计结果 5. JMeterAddress Already in use 错误解决 windows本身提供的端口访问机制的问题。 Windows提供给 TCP/IP链接的端口为1024-5000,并且要四分钟来循环回收他们。…

PostgreSQL

一. PostgreSQL 简介 1 资料来源: 中文手册:http://www.postgres.cn/docs/14/index.html 知乎链接:https://www.zhihu.com/column/c_1452567507496689664 视频链接:https://www.bilibili.com/video/BV1uW4y1m7pD/?spm_id_frompa…

win下docker安装和使用

安装 下载安装包:https://docs.docker.com/desktop/install/windows-install/ 下载 Linux 内核更新包 适用于 x64 计算机的 WSL2 Linux 内核更新包 解决docker下载镜像速度慢问题 阿里云镜像加速器:https://阿里ID.mirror.aliyuncs.com 复制上面镜像…

轮廓检测,高斯模糊及功能

轮廓检测 一、实验介绍 1. 实验内容 本实验将学习轮廓检测及功能。 2. 实验要点 生成二进制图像来查找轮廓找到并画出轮廓轮廓特征边界矩形 3. 实验环境 Python 3.6.6numpymatplotlibcv2 二、实验步骤 1 导入资源并显示图像 import numpy as np import matplotlib.py…

rabbitmq第四课-RabbitMQ高可用集群架构详解以及生产环境最佳实践

一、如何保证RabbitMQ服务高可用 1、RabbitMQ如何保证消息安全 之前通过单机环境搭建起来的RabbitMQ服务有一个致命的问题,那就是服务不稳定的问题。如果只是单机RabbitMQ的服务崩溃了,那还好,大不了重启下服务就是了。 但是如果是服务器的…

MySQL 逻辑备份mysqldump

逻辑备份mysqldump MySQL 自带的逻辑备份工具。可以保证数据的一致性和服务的可用性原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的 insert 语句,当我们需要还原这些数据时,只要执行这些…

红帽“背叛”开源:限制RHEL源码访问,突袭下游发行版

红帽决定停止公开提供其企业发行版 Red Hat Enterprise Linux (RHEL) 源代码。 从现在开始,CentOS Stream 将成为公共 RHEL 相关源代码发布的唯一仓库,付费客户和合作伙伴可通过 Red Hat Customer Portal 访问到源代码。 CentOS Stream 是由 Red Hat 公…

UNIX环境高级编程——网络IPC:套接字

16.1 引言 本章将考察不同计算机&#xff08;通过网络相连&#xff09;上的进程相互通信的机制&#xff1a;网络进程间通信&#xff08;network IPC&#xff09;。 16.2 套接字描述符 为创建一个套接字&#xff0c;调用socket函数&#xff1a; #include <sys/socket.h&g…

图像增强之图像锐化(边缘增强)之robot算子

目录 note code test note matx (-1,0;1,0) maty (0,-1;1,0) code // 图像增强之图像锐化(边缘增强)之robot算子 void GetRobot(Mat& robotX, Mat& robotY) {robotX (Mat_<int>(2,2) << -1,0,1,0);robotY (Mat_<int>(2,2) << 0,-1,1…