HTTP处理

HTTP处理#

HTTP简介#

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,规定了浏览器与服务端传输信息的格式

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

请求过程#

  1. 首先客户端通过URL向服务端发送数据请求
  2. 服务端接受客户端的请求解析请求进行处理
  3. 服务端将处理的结果返回给客户端
  4. 客户端接收服务端的响应数据进行渲染

image-20210506211455790

代理请求#

  • 代理服务器接受客户端的请求

  • 代理服务器中转客户端的请求发送给服务器

  • 服务端向代理进行响应

  • 代理服务器将服务端响应数据响应给客户端

image-20210506230037036

请求特点#

  • 无状态:无论连接多少次,HTTP都不会保存客户端的状态
    • 可以使用cookie或者token保持数据信息
  • 基于TCP/IP协议作用在应用层80端口
  • 请求响应:一次请求一次响应
  • 无连接:服务端对客户端的请求响应之后,立马断开链接,两者再无任何信息
    • 可以使用websockets保持连接,保证服务端可以主动向客户端发送请求

HTTP格式#

请求格式#

  • 请求首行:包含当前请方式,url,http版本
  • 请求头:一大堆的K/V键值对,例如:host,user-agent,referer等
  • \r\n:空行
  • 请求体:需要传输的数据等

image-20210506212325634

响应格式#

  • 响应首行:标识HTTP协议版本号,响应的状态码,以及响应状态
  • 响应头:一般为K/V键值对标识
  • \r\n:空行
  • 响应体:响应的数据内容

image-20210506213429031

响应状态码#

1xx:服务器已经成功接收到客户端发送的请求

2xx:服务器对请求的数据处理成功

3xx:重定向,需要进一步操作

4xx:客户端操作有误,例如权限不足,没有通过认证,或者访问资源不存在

5xx:服务端错误

Burpsuite使用#

抓包#

2XX#

数据成功进行响应

image-20210506234735852

3XX#

数据进行重定向

aklsdhaklsdhjkashdjkasd

4XX#

访问资源不存在

askldjalsdjlkasd

靶场攻击#

在线环境

来源页伪造#

题目需求#

安全工程师“墨者”在访问一个网页时,提示只能通过另一个页面跳转的方式访问,这该如何办?

解题思路#

  • 在HTTP协议中Referer字段告诉服务器从那个页面跳转过来,因此我们可以通过修改Refer字段的内容来完成请求
  • 使用burpsuite进行抓包,其次修改数据包再次发送给服务器即可

image-20210507093730235

Copy
# 将上述的Referer字段中的value更改为谷歌的域名即可 Referer:www.google.com/index.html

testaklsdad1092371923809

浏览器信息伪造#

题目需求#

要求用户访问某网页的时候必须以Iphone手机且在2G的网络下才可以进行访问

解题思路#

  • 在HTTP协议中User-Agent字段标明了用户通过什么客户端的浏览器进行访问,因此我们可以通过修改该字段来完成请求内容
  • 在微信6.0中新增NetType识客户端(手机)当前的网络环境,因此我们在User-Agent添加该字段即可

image-20210507103140280

Copy
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/6.0 NetType/2G

image-20210507103252067

防止访问频率#

题目需求#

微信对某用户进行投票要求某个用户成为投票第一名

解题思路#

  • 由于微信且题目要求通过手机微信投票因此我们更改User-Agent为手机微信访问
  • 猜测限制访问通过IP地址只允许某个用户投票一次,因此我们可以通过添加HTTP_X_FORWARDED_FOR来更改用户的IP地址

image-20210507112130817

Copy
# 修改User-Agent字段为手机微信 User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B176 MicroMessenger/4.3.2 # 注意除首字母之外其余字母需要小写 X-Forwarded-For:192.172101§.§1§

image-20210507191904637

posted @   SR丶  阅读(82)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
CONTENTS