博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP详解及抓包测试
阅读量:5249 次
发布时间:2019-06-14

本文共 2345 字,大约阅读时间需要 7 分钟。

1.工具介绍

抓包工具:Fiddler

详细使用见

参考:

2.抓取http请求报文

一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成.

请求行:

POST http://h5data.talkingdata.net/app/v1 HTTP/1.1

这一行主要包括请求方法,URI(资源定位符) ,HTTP协议版本

协议版本:主要有http0.9,1.0,1.1

0.9:只接受GET一种请求方法,没有在通信中指定版本号,且不支持请求头

1.0:第一个在通信中指定的版本号,每对请求/ 响应都使用一个新的连接。

1.1:采用持久连接,在请求消息头多一个Host域,增加了OPTIONS, PUT, DELETE, TRACE, CONNECT这些Request方法

请求方法见下图:

请求头部:

Host: h5data.talkingdata.netUser-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0Accept: text/plainAccept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateReferer: http://hackinglab.cn/ShowQues.php?type=scriptsContent-Type: application/x-www-form-urlencodedContent-Length: 480Origin: http://hackinglab.cnConnection: keep-alive

请求头部由键/值对组成,每行一对,键和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息

典型的常用请求头有:

User-Agent:产生请求的客户端类型。

Accept:客户端可识别的内容类型列表。

Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机。

Accept-Encoding: 客户端使用的编码环境和编码方式

Accept-Language: 客户端语言环境

Authorization:授权信息,一般用于存放授权之后的信息

Connection:表示是否需要持久连接

Content-Length:表示请求数据正文的长度

Cookie:这个与服务器端做交互的,存储保持会话的重要信息 Referer:表示该次请求的来源,一般用于做防盗链

请求数据

{
"deviceId":"14cdef1e9f1072000","appkey":"680D438DBA1B46D2B47C4077D858EA29","appProfile":{ "versionName":"hackinglab","versionCode":"v1.0","initTime":1553139117023,"sdkVersion":"H5+APP+v1.0.1","partner":""},"deviceProfile":{ "pixel":"1920*1080*1","language":"zh-CN","timezone":8},"msgs":[{ "type":2,"data":{ "id":"14cdef1e9f1072000155313911725700","start":1553139117027,"status":2,"duration":0,"pages":[],"events":[{ "count":1,"start":1553151442437,"id":"提交答案","label":""}]}}]}

2.抓取http应答报文

HTTP响应也由四个部分组成,分别是:状态行、响应头、空格、响应数据。

状态行

HTTP/1.1 200 OK

分别是:HTTP版本,状态码,解释状态码的简单短语

响应头

Access-Control-Allow-Credentials: trueAccess-Control-Allow-Header: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,OriginAccess-Control-Allow-Methods: GET, POST, OPTIONSAccess-Control-Allow-Origin: *Content-Type: application/octet-streamDate: Thu, 21 Mar 2019 06:57:19 GMTServer: nginxContent-Length: 3Connection: keep-alive

响应数据

ok

3.拦截请求并修改请求发送

测试网站:

如图:我输入错误答案回答错误,把发送的报文拦截下来,如下图:

其中ans即为我输入的答案,再来看看应答报文:

明显说明答案错误!!

没事,继续,将我们的请求报文中的ans变成正确格式,如下图

然后我们再来看看应答报文:

明显说明答案正确!!!

这大致就是修改发送报文的方法了!我的去想想为啥会乱码!感兴趣学习的同志加个关注哟!!

转载于:https://www.cnblogs.com/luoshiyong/p/10572662.html

你可能感兴趣的文章
electron入门心得
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
Spring3.0 AOP 具体解释
查看>>
我的Hook学习笔记
查看>>
EasyUI DataGrid 中字段 formatter 格式化不起作用
查看>>
海量数据存储
查看>>
js中的try/catch
查看>>
[导入]玫瑰丝巾!
查看>>
自动从网站上面下载文件 .NET把网站图片保存到本地
查看>>
【识记】 域名备案
查看>>
STL uva 11991
查看>>
MY SQL的下载和安装
查看>>
自定义OffMeshLink跳跃曲线
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
简述spring中常有的几种advice?
查看>>
学习Redux之分析Redux核心代码分析
查看>>
ABAP 创建和调用WebService
查看>>
C# 实例化顺序
查看>>
CSS水平垂直居中总结
查看>>
委托又给我惹麻烦了————记委托链的取消注册、获取返回值
查看>>