Python从请求头中获取参数(Burp Suite)

目录

爬虫获取

需求

代码

从Burp Suite请求体中获取参数


爬虫获取

需求

url参数分三种情况

1. json格式

2. form格式

3. xml格式

已知入参情况有两种

1. Burp Suite 拷贝的请求头信息

2. 爬虫抓取的请求头信息

已知参数位置情况有两种

1. url路径中

2. post请求中的参数

最终返回结果

从入参中获取所有参数已 key :value 方式展示出

代码

get_params.py

#! /usr/bin/env python
# -*- coding: utf-8 -*-import jsondef get_params(url, data, json_b):params = {}if '?' in url and '=' in url:data = url.split('?')[1]if data[:1] == '?':data = data[1:]elif data:if json_b:params = dataelse:try:params = json.loads(data.replace('\'', '"'))return paramsexcept json.decoder.JSONDecodeError:passelse:return Noneif not params:parts = data.split('&')for part in parts:each = part.split('=')if len(each) < 2:each.append('')try:params[each[0]] = each[1]except IndexError:params = Nonereturn paramsif __name__ == "__main__":#url = "http://172.16.12.129:8080/aaaa.php?aaa=3&bbb=4"url = "http://172.16.12.129:8080/aaaa.php"data = 'handle=<link rel=attachment href="file:///etc/passwd">&insert=Generate+%3E%3AD%3C'#data = {"handle": "aaa", "insert": "bbb"}print(get_params(url, data, isinstance(data, dict)))

从Burp Suite请求体中获取参数

import re
import json
import urllib.parseclass Requester(object):protocol   = "http"host       = ""method     = ""action     = ""headers    = {}data       = {}params     = {}"""path: burp suite保存的请求头文件路径ssl: 判断http/httpsproxies: 代理"""def __init__(self, path, uagent, ssl, proxies):try:# 读取请求文件with open(path, 'r') as f:content = f.read().strip()except IOError as e:print("找不到文件")exit()try:content = content.split('\n')# 解析 method 和 操作 URIregex = re.compile('(.*) (.*) HTTP')self.method, self.action = regex.findall(content[0])[0]   # 请求方法、请求路径# 分析标头for header in content[1:]:name, _, value = header.partition(': ')if not name or not value:continueself.headers[name] = valueself.host = self.headers['Host']# 分析 user-agentif uagent != None:self.headers['User-Agent'] = uagent# 分析 data(区分json、form、xml格式)self.data_to_dict(content[-1])# 处理HTTPS请求if ssl == True:self.protocol   = "https"self.proxies = proxiesself.params = get_params(self.action, self.data, isinstance(self.data, dict))except Exception as e:print("错误的格式或原始数据 !")def data_to_dict(self, data):if self.method == "POST":# JSON 数据if self.headers['Content-Type'] and "application/json" in self.headers['Content-Type']:self.data = json.loads(data)# XML 数据elif self.headers['Content-Type'] and "application/xml" in self.headers['Content-Type']:self.data['__xml__'] = data# FORM 数据else:for arg in data.split("&"):regex = re.compile('(.*)=(.*)')for name,value in regex.findall(arg):name = urllib.parse.unquote(name)value = urllib.parse.unquote(value)self.data[name] = value

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/601812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jquery图形验证码

效果展示 js图形随机验证码&#xff08;表单验证&#xff09; html代码片段 <form class"formwrap"><div class"item"><input type"text" id"code_input" value"" placeholder"请输入验证码"/>…

macOS跨进程通信: FIFO(有名管道) 创建实例

一&#xff1a; 简介 在类linux系统中管道分为有名管道和匿名管道。两者都能单方向的跨进程通信。 匿名管道&#xff08;pipe&#xff09;: 必须是父子进程之间&#xff0c;而且子进程只能由父进程fork() 出来的&#xff0c;才能继承父进程的管道句柄&#xff0c;一般mac 开发…

(05)沉积——“更小、更多”,微细化的关键

01、沉积:“加法工艺” 在前几篇文章,我们一直在借用饼干烘焙过程来形象地说明半导体制程。在上一篇我们说到,为制作巧克力夹心,需通过“刻蚀工艺”挖出饼干的中间部分,然后倒入巧克力糖浆,再盖上一层饼干层。“倒入巧克力糖浆”和“盖上饼干层”的过程在半导体制程中就…

玩转爱斯维尔 LaTeX 模板:定制技巧一网打尽!

简介 关于 LaTeX 小编写过一些推文&#xff1a; 适合撰写课程论文的 LaTeX 模板; LaTeX 常用数学符号汇总; 免费升级 overleaf 高级账户&#xff01;; 如何下载使用期刊的 LaTeX 模板 本文基于常用的 Elsevier 期刊模板&#xff0c;小编分享个人常用的使用技巧&#xff0…

【操作系统xv6】学习记录3-Wsl2 Ubuntu18.04图形化界面

不知道为啥&#xff0c;wls2和windows用vscode ssh的方式连接识别&#xff0c; 既然如此&#xff0c;那就装一个桌面版的&#xff0c;其实2年多前装过一次&#xff0c;后来pc机跑深度学习的任务&#xff0c;硬盘坏了~ 开干前再试一次 ref&#xff1a;https://zhuanlan.zhihu.…

字符串加密-第11届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第29讲。 字符串加密&#…

C语言字符类型详解

1. 字符型变量概述 在C语言中&#xff0c;使用 char 关键字来表示字符型变量&#xff0c;它用于存储一个单一字符。 字符型变量的赋值需要使用一对英文半角格式的单引号&#xff08;&#xff09;把字符括起来。 每个字符变量在16位、32位或64位编译器中都是占用1个字节(8位)…

【一】达梦数据库安装和使用-Windows

达梦数据库安装和使用-Windows 简介&#xff1a; 新能源行业关系到国计民生&#xff0c;保障能源安全的意识不容懈怠&#xff0c;近些年各行各业都在推进数字化进程&#xff0c;能源行业在国家3060双碳目标提出之后更是进行的如火如荼&#xff0c;能源互联网方面在数字化的同时…

Spark集群搭建

Spark集群结构 图 名词解释 Driver 该进程调用 Spark 程序的 main 方法&#xff0c;并且启动 SparkContextCluster Manager 该进程负责和外部集群工具打交道&#xff0c;申请或释放集群资源Worker 该进程是一个守护进程&#xff0c;负责启动和管理 ExecutorExecutor 该进程是一…

「Verilog学习笔记」任意奇数倍时钟分频

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 timescale 1ns/1nsmodule clk_divider#(parameter dividor 5) ( input clk_in,input rst_n,output clk_out );parameter CNT_WIDTH $clog2(dividor - 1) ; reg flag1, f…

XDOJ167.数字统计排序

标题 数字统计排序 类别 综合 时间限制 1S 内存限制 256Kb 问题描述 给定n个整数&#xff0c;请统计出每个整数出现的次数&#xff0c;按出现次数从多到少的顺序输出&#xff0c;次数相同时先输出值较小的数。 输入说明 输入的第一行包含一个整数…

转载:Windows实用小工具

原文作者我忘了是谁了&#xff0c;如有侵权联系我。 开始的时候要输入用户名和密码&#xff0c;都是“123456”。 源代码&#xff1a; #include <iostream> #include <windows.h> #include <cstring> #include <cstdio> #include <cmath> usi…

西门子PLC联网数据采集:借助HiWoo Box实现高效监控与管理

在工业自动化领域&#xff0c;西门子PLC作为一种广泛应用的控制器&#xff0c;对于工厂的生产线具有至关重要的作用。如何实现西门子PLC的联网数据采集&#xff0c;提高生产效率和管理水平&#xff0c;成为了许多企业的关注焦点。而HiWoo Box作为一款功能强大的工业网关&#x…

Docker安装Centos8系统

引言&#xff1a;最小安装版Centos8系统安装docker软件安装记录 官网安装教程&#xff1a;https://dockerdocs.cn/engine/install/centos/index.html 操作系统镜像版本 CentOS-Stream-8-x86_64-latest-boot.iso 第一步&#xff1a;更新yum yum -y update第二步&#xff1a;…

基于PHP的花店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的花店管理系统 一 介绍 此花店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。(附带参考设计文档) 技术栈&#xff1a;phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 …

具备闭环思维的测试才更充分

测试工作的终极目标是为了保障产品的质量。如果用同一个维度衡量测试人员的业务水平&#xff0c;简单粗暴一些&#xff1a;那就是针对同一款产品&#xff0c;哪个测试人员发现的bug多&#xff0c;哪个测试人员的测试理论与实践水平相对来说还是高一些。 前两天组长在群里分析了…

13-注意力机制

文章目录 什么是注意力机制注意力机制的实现方式1、SENet的实现---通道注意力 CA(Channel Attention)2、CBAM的实现通道-空间注意力 CA-SA(channel attention, spacial attention)残差-通道-空间注意力(ResBlock + CBAM)残差-通道注意力 RCAB残差-空间注意力 RSAB3、ECANet什…

LeetCode做题总结 15. 三数之和、18. 四数之和 (Java)

不会做&#xff0c;参考了代码随想录和力扣官方题解&#xff0c;对此题进行整理。 X数之和 15. 三数之和代码思路20240103重写错误1错误2Java语言点总结 18. 四数之和代码思路20240104&#xff08;伪&#xff09;错误1 第一次剪枝错误2 第二次剪枝错误3 溢出 15. 三数之和 代码…

滑动窗口最大值【子串】【滑动窗口】【双端队列】

Problem: 239. 滑动窗口最大值 文章目录 思路 & 解题方法复杂度Code 思路 & 解题方法 实在是太太太太巧妙了&#xff01;定义一个双端队列&#xff0c;然后存储下标&#xff0c;存储进去每一个数的下标时&#xff0c;都需要将现在有的数且小于当前的数字都去掉&#xf…

静态网页设计——贵州美食(HTML+CSS+JavaScript)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1vC4y1K7de/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术&#xff1a;HTMLCSSJS&#xff08;…