HTTP处理
HTTP处理#
HTTP简介#
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议,规定了浏览器与服务端传输信息的格式
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
请求过程#
- 首先客户端通过URL向服务端发送数据请求
- 服务端接受客户端的请求解析请求进行处理
- 服务端将处理的结果返回给客户端
- 客户端接收服务端的响应数据进行渲染
代理请求#
-
代理服务器接受客户端的请求
-
代理服务器中转客户端的请求发送给服务器
-
服务端向代理进行响应
-
代理服务器将服务端响应数据响应给客户端
请求特点#
- 无状态:无论连接多少次,HTTP都不会保存客户端的状态
- 可以使用cookie或者token保持数据信息
- 基于TCP/IP协议作用在应用层80端口
- 请求响应:一次请求一次响应
- 无连接:服务端对客户端的请求响应之后,立马断开链接,两者再无任何信息
- 可以使用websockets保持连接,保证服务端可以主动向客户端发送请求
HTTP格式#
请求格式#
- 请求首行:包含当前请方式,url,http版本
- 请求头:一大堆的K/V键值对,例如:host,user-agent,referer等
- \r\n:空行
- 请求体:需要传输的数据等
响应格式#
- 响应首行:标识HTTP协议版本号,响应的状态码,以及响应状态
- 响应头:一般为K/V键值对标识
- \r\n:空行
- 响应体:响应的数据内容
响应状态码#
1xx:服务器已经成功接收到客户端发送的请求
2xx:服务器对请求的数据处理成功
3xx:重定向,需要进一步操作
4xx:客户端操作有误,例如权限不足,没有通过认证,或者访问资源不存在
5xx:服务端错误
Burpsuite使用#
抓包#
2XX#
数据成功进行响应
3XX#
数据进行重定向
4XX#
访问资源不存在
靶场攻击#
来源页伪造#
题目需求#
安全工程师“墨者”在访问一个网页时,提示只能通过另一个页面跳转的方式访问,这该如何办?
解题思路#
- 在HTTP协议中Referer字段告诉服务器从那个页面跳转过来,因此我们可以通过修改Refer字段的内容来完成请求
- 使用burpsuite进行抓包,其次修改数据包再次发送给服务器即可
# 将上述的Referer字段中的value更改为谷歌的域名即可
Referer:www.google.com/index.html
浏览器信息伪造#
题目需求#
要求用户访问某网页的时候必须以Iphone手机且在2G的网络下才可以进行访问
解题思路#
- 在HTTP协议中User-Agent字段标明了用户通过什么客户端的浏览器进行访问,因此我们可以通过修改该字段来完成请求内容
- 在微信6.0中新增NetType识客户端(手机)当前的网络环境,因此我们在User-Agent添加该字段即可
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
防止访问频率#
题目需求#
微信对某用户进行投票要求某个用户成为投票第一名
解题思路#
- 由于微信且题目要求通过手机微信投票因此我们更改User-Agent为手机微信访问
- 猜测限制访问通过IP地址只允许某个用户投票一次,因此我们可以通过添加HTTP_X_FORWARDED_FOR来更改用户的IP地址
# 修改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.172.§101§.§1§
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!