数据包扩展

 #请求行

#请求行

请求行由三个标记组成:请求方法,请求url和HTTP版本,他们用空格分享。

例如 :GET /index.html HTTP/1.1

HTTP 规划定义了8中可能请求的方法:

GET:检索URL中标识资源的一个简单请求

HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回文档

POST:服务器接收被写入客户端输出流中的数据的请求

扫描二维码关注公众号,回复: 14914860 查看本文章

PUT:服务器保存请求数据作为指定URL新内容的请求

DELETE:服务器删除URL中命令的资源的请求

OPTIONS:关于服务器支持的请求方法信息的请求TRACE: web服务器反馈Http请求和其头标

的请求

CONNECT:已文档化,但当前未实现的一个方法,预留做隧道处理

请求头

 由关键字/值组成,每行一对,关键字和值用冒号分享。请求头标通知服务器用户客户端的功能和标识

HOST:主机或者域名地址

Accept:指浏览器或其他客户端可以接受的MIME文件格式。servlet可以根据它判断并返回适当的文件格式。

User-Agent:是客户端浏览器的名称

Accept-Langeuage:指浏览器可以接受的语言的种类,如en或en-us,指英语。

X-Forwarded-For:是一个 HTTP 扩展头部,主要是为了让 Web 服务器获取访问用户的真实 IP 地址

Connection:用来告诉服务器是否可以维持固定的HTTP连接。http是无连接的。HTTP/1.1使用keep-Alive为默认值,这种,当浏览器需要多个文件时(比如一个HTML文件和相关的图像文件),不需要每次都建立连接

Cookie:浏览器用这个属性向服务器发送cookie。cookie是浏览器 中寄存的小型数据体,

他可以记载和服务器相关的用户信息,也可以来实现会话功能。

Referer:表明产生请求的网页的url。比如从网页http://www.baidu.com/index.php中点击到一个链接的网页http://jd.com/login.php,在向服务器发送http://jd.com/login.php的请求中,Referer是从http://www.baidu.com/index.php这个页面来的。这个属性可以用来跟踪web请求是从什么网站来的

Content-Type: 用来表明Request的内容类型。可以用HttpServletRequesta的getContentType()方法取得

Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8869-1

Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到web响应之后先解码,然后在检查文件格式。

空行 

最后一个请求头标之后是空行,发送回车符和退行,通知服务器一下不在有头标

请求数据

使用POST传送,最常使用的是 Content-type和 Content-Leng

ght头标


 Response返回数据包数据格式

#Response请求数据包的数据格式

一个响应由四个部分组成:状态行,响应头标,空行,响应数据。

1.状态行:协议版本,数字形式的状态代码和状态描述,个元素之间以空格分隔

2.响应头标:包含服务器类型,日期,长度,内容类型等

3.空行:响应头于响应体之间用空格隔开

4.响应数据:浏览器会将实体内容中的数据取出来,生成相应的页面

HTTP响应码:

1xx:信息,请求收到,继续处理

2xx :  成功,行为被成功的接受,理解和采纳

3xx:  重定向,为了完成请求,必须进一步执行的动作

4xx:客户端错误

5xx:服务器错误

200:存在文件

403:  存在文件夹

3xx:  均可能存在

404: 不存在文件及文件夹

500: 均可能存在

#响应头标

最后一个响应头标之后是一个空行,发送回车符和退行,表明服务器以下不再有头标。

#响应数据29
HTML文档和图像等,也就是HTML本身

PC端和app抓包操作

PC端:抓进程工具:WSExplore ,Wireshark

APP:需要下载模拟器,比如逍遥模拟器

 长按左键,修改网络。

高级选项->代理

 

设置你本机的ip地址,设置一个端口

 

 bp设置ip和端口,模拟器设置的ip和端口是什么这里就设置什么。

勾选上。

如何在web访问app的网页 

先使用burp打开模拟的一个应用,接收到数据包将的进行拦截下来。

将数据包发送到Repeater模块中记录一下。 

把host的地址和url的联合在一起,在web端构造url去访问 

这里请求错误是因为我们使用的web的浏览器发送的请求,和app端发送的请求数据包不同,所以失败

再次使用web端发送请求并且开启抓包的功能。 

把之前app端的数据包在Repeater中复制出来进行和前面截取到了web端的数据包进行替换

替换后,把数据包放出去 

这里页面显示成功!

一定要记住如果要使用web访问app的网页的话一定要修改数据包做到统一 

案例演示:

User-Agent演示

 

什么是Nettype 微信6.0内嵌浏览器User-Agent字符串增加了NetType字段_quark~的博客-CSDN博客_nettype

 

 

 对方是通过User-Agent来检查我们什么登陆的。对方的需求是必须得是手机登陆,但是我们user-agent的信息是windows也是web,显然不符合需求所以我们需改更改user-agent的参数

把他修改成手机端的,而且得是2G网络。那么就修改USER-aget的参数。

替换成iphone的请求和2G的参数 ->放包

成功 

涉及Referer案例

 

我们的目标是访问x_search_index.php这个页面,但是我们当前是通过 http://124.70.71.251:43251/index.html这个页面点击进入到_xssearch_index.php,他的要求来源地址必须是通过google.com访问,那么我们就修改我们的来源的Referer

成功 

涉及:X-Forwarded-For

 

首先设置回环地址

X-Forwarded-For:127.0.0.1

 

发送到Intruder模块中将密码设置成一个字典去跑 

 

根据长度判断密码是admin 

回到数据包将密码修改成admin发送出去 

涉及:X-Forwarded-For     -User-Agent

 

 

 

这里提示使用微信打开,那就是判断出来了我们是web他需要的是手机端。

第一步修改Usert-Agent先修改成手机端的,让对方进行判断 。

修改完成后。

 

这里设置X-Forwarded-For因为对方可能是使用X-Forwarded检查了ip的唯一性,一个ip只能投一个 

 使用到了以上的函数

将ip设置成变量,因为一个ip只能投一票,所以我们要一直变化我们ip去进行投票 

 

成功 

猜你喜欢

转载自blog.csdn.net/m0_72755466/article/details/129033407