当前位置:网站首页>从GET切换为POST提交数据的方法
从GET切换为POST提交数据的方法
2022-08-10 05:22:00 【红蓝的红】
一、前言
GET传参本身是用来从服务器取东西的,GET也能够向服务器传送较少的数据,但这些数据本身只是用来告诉服务器,用户需要什么样的数据。
因此GET传参来提交数据,会有长度的限制。此时如果服务器采用$_REQUEST来接收传参,这意味着可以将提交数据的方式转换一下,实现提交指定的数据。
二、GET切换为POST
要将GET传参转换为POST传参,并不是简单的将头部的GET改为POST,然后参数放到实体中,这样服务器是无法正确接收到你发送的数据的。需要注意二者的区别:GET传参缺少的部位:Content-Type、Content-Length、Origin、post传参内容,当然Origin不一定需要,但其他内容是必须的。下面以一个靶场为例,讲解两种修改传参的方式:
(一)用工具全自动修改
首先进入靶场,地址在:http://124.70.71.251:46005/
点击静夜思,然后抓取数据包:
鼠标单击右键,选择Change request method,效果如下:
然后发送数据包,查看网页的内容:
(二)手工修改
手工修改是本文的重点了,毕竟只会用工具改充其量就是个脚本小子,既要知其然也要知其所以然。
首先重新抓取刚才的数据包,然后按ctrl+R发送到repeter模块:
按顺序完成如下修改:
第一步:
首先要明确提交方式,因此将头部的GET改为POST
第二步:GET传参的数据包比POST方式的数据包,头部信息会少几个字段,需要补齐,我们一个个补。
首先将参数content的内容放到实体中,作为POST提交的内容(注意?要删掉):
然后在头部添加一行Content-Type:字段,后面的参数用于告诉服务器,我提交的POST数据是什么数据类型。关于其中的参数,有很多,例如:
常见的参数对应的媒体格式类型:
| 字段 | 数据类型 |
|---|---|
| text/html | HTML格式 |
| text/plain | 纯文本格式 |
| text/xml | XML格式 |
| image/gif | gif图片格式 |
| image/jpeg | jpg图片格式 |
| image/png | png图片格式 |
当然还有application开头的类型:
| 字段 | 数据类型 |
|---|---|
| application/xhtml+xml | XHTML格式 |
| application/xml | XML数据格式 |
| application/atom+xml | Atom XML聚合格式 |
| application/json | JSON数据格式 |
| application/pdf | pdf格式 |
| application/msword | Word文档格式 |
| application/octet-stream | 二进制流数据(eg:文件下载) |
| application/x-www-form-urlencoded | 默认提交的方式 |
通过对比分析上面的参数,我们可以先尝试按默认的方式来提交,也就是ContentType的参数应为application/x-www-form-urlencoded。
接着还需要告诉服务器,实体部分内容的总长度是多少(即有多少个字符)。
在此之前,先将原始的数据进行一次URL解码,然后替换掉原始的数据:
现在需要将实体部分的内容全选,然后发送到Comparer模块即可知道字符的数量(包括content这个参数):
可以看到,长度为9966,因此添加字段Content-Length: 9966。注意,:后面应有一个空格,前面的Content-Type字段后面的:也是。
因此完整的数据包如下:
发送数据包:
提交KEY:
三、小结
本文通过一道靶场的练习分享了GET传参方式切换为POST传参的方法,其中手工操作较为繁琐,但读者也应该掌握这个方法,以夯实自己的基本功,切勿做一个只能依赖工具的脚本小子。
边栏推荐
- 添加路由的2种方式--router
- 什么是“大小端字节序”存储模式?
- FPGA engineer interview questions collection 1~10
- Important transformation and upgrading
- flinkcdc 读取pgsql 的时间被放大了 有大佬知道咋回事吗 gmt_create':1
- How cursors work in Pulsar
- 线性代数(四)
- flinksql怎么写redis的value只有最后一个字段?
- tensorflow分词深度学习——影评预测
- Interface documentation evolution illustration, some ancient interface documentation tools, you may not have used it
猜你喜欢

conda创建虚拟环境方法和pqi使用国内镜像源安装第三方库的方法教程

Joomla vulnerability reproduced

ThreadPoolExecutor线程池原理

canvas canvas drawing clock

Practical skills 19: Several postures of List to Map List

2022 T Elevator Repair Exam Questions and Mock Exams

canvas 画布绘制时钟

JavsSE => 多态

【论文笔记】Prototypical Contrast Adaptation for Domain Adaptive Semantic Segmentation

OAuth2 usage scenarios, common misunderstandings, use cases
随机推荐
安芯电子IPO过会:年营收4亿 汪良恩兄弟持股61.6%
Consulting cdc 2.0 for mysql does not execute flush with read lock. How to ensure bin
Nexus_仓库类型
众昂矿业:萤石下游需求强劲
awk of the Three Musketeers of Shell Programming
暑期学前作业
Ask you guys.The FlinkCDC2.2.0 version in the CDC community has a description of the supported sqlserver version, please
OAuth2的使用场景、常见误区、使用案例
【Pei Shu Theorem】CF1055C Lucky Days
leetcode每天5题-Day10
pytorch 学习
Abstract problem methodology
Unity implements UI edge detection and drag-and-drop functions
细数国产接口协作平台的六把武器!
Attention candidates for the soft exam! The detailed registration process for the second half of 2022 is coming!
剑指Offer 033.变位数组
请教一下各位大佬。CDC社区中FlinkCDC2.2.0版本有说明支持的sqlserver版本 ,请
如何模拟后台API调用场景,很细!
OAuth2 usage scenarios, common misunderstandings, use cases
Guys, is it normal that the oracle archive log grows by 3G in 20 minutes after running cdc?