【网络安全带你练爬虫-100练】第22练:数据包中参数提取与处理

news/2024/11/28 14:49:21/

目录

一、目标1:GET数据包的处理

1、GET数据包中参数的提取

2、GET请求中 统计参数个数

二、目标2:POST数据包的处理

1、post中参数个数的提取

2、POST请求中 统计参数个数


一、目标1:GET数据包的处理

1、GET数据包中参数的提取

import redef extract_get_parameters(request):# 查找GET请求中的参数部分match = re.search(r'GET\s+/.*\?(.*)\s+HTTP', request)if match:parameters = match.group(1)# 将参数部分按照 '&' 分割成键值对parameter_list = parameters.split('&')# 将键值对解析为字典形式parameters_dict = {}for parameter in parameter_list:key, value = parameter.split('=')parameters_dict[key] = valuereturn parameters_dictreturn {}# 示例请求
request = "GET /xxxx/xxxx HTTP/1.1\nHost: x.x.x.x.cn\n……{此处省略一万字}"parameters = extract_get_parameters(request)
print(parameters)


2、GET请求中 统计参数个数

import redef count_get_parameters(request):# 查找GET请求中的参数部分match = re.search(r'GET\s+/.*\?(.*)\s+HTTP', request)if match:parameters = match.group(1)# 将参数部分按照 '&' 分割成键值对parameter_list = parameters.split('&')# 统计参数个数return len(parameter_list)return 0# 示例请求
request = "GET /xxxx/xxxx HTTP/1.1\nHost: x.x.x.x.cn\n……{此处省略一万字}"count = count_get_parameters(request)
print(count)



二、目标2:POST数据包的处理

1、post中参数个数的提取

import redef count_post_parameters(post_data):# 使用正则表达式提取JSON数据pattern = r"\{.*\}"match = re.search(pattern, post_data)if match:json_data = match.group()parsed_data = json.loads(json_data)parameter_count = len(parsed_data)return parameter_countelse:return 0# 示例用法
post_data = '''POST /xxxx/xxxx HTTP/1.1\nHost: x.x.x.x.cn\n……{此处省略一万字}'''parameter_count = count_post_parameters(post_data)
print(parameter_count)  # 输出:4

2、POST请求中 统计参数个数

(与GET类似,就不再做叙述了)


http://www.ppmy.cn/news/1086734.html

相关文章

华为云云服务器评测 | 从零开始:云耀云服务器L实例的全面使用解析指南

文章目录 一、前言二、云耀云服务器L实例要点介绍2.1 什么是云耀云服务器L实例2.1.1 浅析云耀云服务器L实例 2.2 云耀云服务器L实例的产品定位2.3 云耀云服务器L实例优势2.4 云耀云服务器L实例支持的镜像与应用场景2.5 云耀云服务器L实例与弹性云服务器(ECS&#xf…

向openssl中添加一个最简单的算法

文章目录 一、尝试在sha.c中添加新的函数二、添加自定义算法2.1 添加对应文件2.2 相关配置2.3 编译运行 一、尝试在sha.c中添加新的函数 在尝试添加新算法前,我先尝试在原有的旧算法中添加一个新函数,看是否能被编译并生成对应的动态链接库。 关于open…

《Python魔法大冒险》006 变量的迷雾

小鱼和魔法师走了很久,终于来到了一个神秘的森林前。这片森林与众不同,它被一层厚厚的迷雾所包围,仿佛隐藏着无尽的秘密。 小鱼好奇地看着这片森林:“这是什么地方?” 魔法师:这是魔法森林,一个充满魔法和挑战的地方。但要进入这片森林,我们首先要解开这层迷雾。 小…

Hive 表注释乱码解决

文章目录 出现原因MySQL 字符集修改调整元数据库字符集测试 出现原因 一般 Hive 的元数据信息都存储在 MySQL 中,但 MySQL 数据库中的 character_set_server 和 character_set_database 参数,默认都为 latin1 字符集,这两个参数决定了服务器…

Mysql底层数据结构为什么选择B+树

索引底层采用什么数据结构,为什么使用B树而不是其他数据结构: (1)如果采用二叉树:使用递增字段作为索引时,二叉树会退化成链表,查找效率太低 (2)如果采用红黑树&#xf…

玩转Mysql系列 - 第12篇:子查询(非常重要,高手必备)

这是Mysql系列第12篇。 环境:mysql5.7.25,cmd命令中进行演示。 本章节非常重要。 子查询 出现在select语句中的select语句,称为子查询或内查询。 外部的select查询语句,称为主查询或外查询。 子查询分类 按结果集的行列数不…

drf之请求、drf之响应、两个视图基类、5个视图扩展类(不是视图类)、原生django,怎么写向响应头写入数据

1 drf之请求 1.1 drf 之请求Request类 # 新的request对象---》之前聊过一部分# from rest_framework.request import Request# 1 以后视图类的方法中的request都是这个类的对象 # 2 以后使用request.data 取请求体中的数据 # 3 以后使用request.query_params 取请参数中的数…

解决IDEA中java的system.properties乱码问题

在拉了别人的代码到本地后发现system.properties中中文注释都变成了乱码,故记录下解决步骤,供参考,我的系统是mac系统 1、在IDEA中打开设置,IDEA--->Preferences 2、点击Editor-->File Encodings 3、图中三处选择UTF-8&…