网站首页 > 技术文章 正文
我们计划实现的弱口令破解软件一共支持如下四类协议的解析:
- 数据库类——MySQL、Oracle和SQL server
- 邮件类——IMAP、POP3和SMTP
- 文件传输类——FTP
- 运维类——SSH数据库类我们之前的文章就已经讲过了,详细可以查看这两篇文章(Python连接MySQL数据库和python使用cx_Oracle库连接oracle服务器)
邮件协议介绍
今天我们就来看看第二类——邮件协议的解析。
作为知识储备,我们首先可以了解一下一封邮件的从发件人到收件人的简单分析过程。
- 发件人A写好一封邮件,通过SMTP协议发送到SMTP服务器上
- 收件人B定时从邮件服务器上通过POP3协议或者IMAP协议下载发件人A发出来的邮件
简单来说SMTP负责发邮件,POP3或者IMAP负责收邮件。那POP3和IMAP都是收邮件的话,二者有什么区别呢?最简单的解释,POP3只是单向地从邮件服务器下载邮件,不会将下载后的邮件状态再同步给邮件服务器;IMAP和邮件服务器之间是双向的通信过程,除了收邮件以外,还会将客户端上对邮件的操作(如:移动邮件到另外一个文件夹)同步到邮件服务器上。
SMTP协议
python内置的smtplib对SMTP协议进行了简单的包装,就完全可以实现我们验证用户名密码的操作(发送邮件只需要将注释的代码去掉注释即可),具体代码如下:
import smtplib
?
print("=======破解SMTP协议========")
user="1*********8@163.com"
password="1***X"
?
try:
smtpObj = smtplib.SMTP(timeout=30)
smtpObj.set_debuglevel(0)
smtpObj.connect('smtp.163.com', 25) # 25 为 SMTP 端口号
smtpObj.login(user, password)
print(f"用户名:%s,密码:%s登录成功\n"%(user, password))
except smtplib.SMTPException:
print(f"用户名:%s,密码:%s无法登录成功\n" % (user, password))
我们用于验证邮箱密码的代码比较简单,从代码中看出我们要验证SMTP用户名密码需要四个参数:服务器地址、服务器端口、用户名和密码。输出用户名密码的验证结果
POP3协议
POP3协议我们使用的是poplib库,具体代码如下:
import poplib
?
print("=======破解POP3协议========")
user="1*********8@163.com"
password="1***X"
?
try:
pop3_server = poplib.POP3("pop3.163.com",110)
pop3_server.user(user)
pop3_server.pass_(password)
print("用户名:%s,密码:%s登录成功\n" % (user, password))
except:
print("用户名:%s,密码:%s无法登录成功\n" % (user, password))
和SMTP协议类似,输入参数有:服务器地址、服务器端口、用户名和密码。输出用户名密码的验证结果
IMAP协议
连接IMAP协议需要我们使用pip命令安装一个imapclient第三方模块。
安装之后我们验证用户名密码的代码也十分简单
import imapclient
?
print("=======破解IMAP协议========")
user="1*********8@163.com"
password="1***X"
?
try:
imap = imapclient("imap.163.com",port=143, ssl=True)
imap.login(user, password)
print("用户名:%s,密码:%s登录成功\n" % (user, password))
except:
print("用户名:%s,密码:%s登录成功\n" % (user, password))
和SMTP协议类似,输入参数有:服务器地址、服务器端口、用户名和密码。输出用户名密码的验证结果
总结
我们发现,其实我们要实现的用户名密码验证功能实现是非常简单的。现在我们看看我们破解邮件协议都需要哪些输入和输出参数,便于我们后续GUI的界面设计。
好了,今天的内容就先聊到这里吧,有什么疑问可以在公众号添加菜鸟小白的微信,我们相互讨论。
猜你喜欢
- 2024-11-14 RPA如何破解企业的5大技术难题? rpa如何实现
- 2024-11-14 两分钟破解—特斯拉缘何再次“闪耀”温哥华Pwn2Own黑客大赛?
- 2024-11-14 游戏无国界?连Minecraft都从俄罗斯平台下架了
- 2024-11-14 快速检查下plsql,最近发现了RushQL病毒正在入侵数据库
- 2024-11-14 数据库管理工具Navicat Premium 15安装
- 2024-11-14 微软、谷歌们怎么看?俄罗斯解禁最大盗版网站,无惧断供
- 2024-11-14 守正创新破解“高效冶炼”方程式 守正创新出处意思
- 2024-11-14 太实用了!自己动手写软件——我们的密码PJ工具终于完成了
- 2024-11-14 太实用了!自己动手写软件——SSH、FTP和SQL server的密码破解
- 2024-11-14 关于密码攻击工具hydra和美杜莎工具使用知识点总结(一)
你 发表评论:
欢迎- 612℃几个Oracle空值处理函数 oracle处理null值的函数
- 603℃Oracle分析函数之Lag和Lead()使用
- 592℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 589℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 583℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 576℃【数据统计分析】详解Oracle分组函数之CUBE
- 566℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 558℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)