HTTP请求

618 字

HTTP请求

HTTP 是浏览器、App、接口客户端和服务器之间说话的格式。做 Web 安全时,先能看懂一条请求,后面看认证、越权、注入、文件上传才不会散。

一条请求里有什么

部分 作用 安全上看什么
请求行 方法、路径、协议版本 是否有隐藏路径、危险方法、敏感参数
Header 客户端、来源、身份、格式等上下文 Cookie、Authorization、Referer、Origin、X-Forwarded-*
Body POST/PUT 等请求提交的数据 JSON、表单、文件、XML 是否被可信处理
响应码 服务器处理结果 200、302、401、403、404、500 的差异
响应体 页面或接口返回内容 错误信息、调试信息、数据越权、反射内容

常见方法里,GET 多用于读取,POST 多用于提交,PUT/PATCH 常用于修改,DELETE 常用于删除。方法本身不等于权限,真正的权限判断必须在服务端完成。

读包时的关注点

  • 身份从哪里来:看 CookieAuthorization、自定义 Token 和会话参数。
  • 数据从哪里进:看 URL 参数、表单字段、JSON 字段、上传文件名、Header。
  • 状态怎么变:看登录前后、不同角色、不同对象 ID 的返回差异。
  • 服务端信什么:如果客户端能改价格、角色、状态、回调地址,就要警惕逻辑漏洞。
  • 错误怎么回:详细报错、栈信息、SQL 错误、框架版本都可能暴露内部信息。

初学者速记

HTTP 请求不是“页面点一下”的表象,而是一份可观察、可比较、可复现的业务记录。安全测试里最常做的事,就是改一个变量,观察服务端是否仍然按规则处理。

Licensed under CC BY-NC-SA 4.0