拿到一个请求如何渗透

遵循由小到大进行测试。

1、样本请求

(1)请求设置

  • 基于url、请求头部设置
  • 基于https标志、请求报文设置

(2)是否响应

  • 如果未收到响应,可能的情况:
    • 中间网络延迟,导致请求和响应无法快速传递,超出客户端等待接收响应的最大时间
    • 服务端接收后,无法处理或者处理时间过长,同时未及时进行响应返回
    • 指定的域名未注册
    • dns服务器异常,无法提供域名解析,或者指向错误ip
    • ip不存在,或者关机、未联网、屏蔽当前主机连接
  • 接收到响应,可以获取状态码、响应头部字段、响应体部信息与响应等待时间

(3)状态码分析

  • 200,正常业务
  • 3xx,主要结合location头部字段,分析是否存在重定向漏洞
  • 403
    • 修改host为ip或子域名,以尝试绕过waf
    • 其它尝试绕过
  • 5xx
    • 服务端的异常信息暴露

报异常时,可以尝试分析是否为知名waf,搜索其源码或漏洞。如果参数写入数据库,可以尝试sql注入。参数输出到前端,可以尝试xss

(4)响应头部字段分析

  • server、x-powered-by等字段的信息收集
  • set-cookie查看是否包含敏感信息,以及是否可以由请求中参数控制
  • locaiton字段
  • content-type字段,为html则可以考虑xss,为json等则考虑json劫持

(5)响应体部

  • html、css、js、json、xml注释,以及标识的变量、显示元素。可能包含用户名、密码,开发者和运营者信息,jquery等组件的类型与版本
  • input,获取可能的隐藏变量
  • eval、hash,分析js代码

(6)请求

  • 是否存在url直接参数
  • 是否存在url路径参数
  • 是否存在请求体部
  • 请求头部是否包含非常规字段
  • 是否包含cookie字段或者token值

2、重复性请求

将样本请求克隆,再次发送。进行比较

(1)是否收到响应

(2)响应状态码

(3)头部字段的名称的序列

date和etag存在变化,还可能包含其它自定义的变化的响应字段

(4)响应体部

  • 内容一致。请求中不存在一次性token,响应中也不包含时间戳等变量
  • 内容不同,但字符长度一致。请求中不存在一次性token,但响应中存在时间戳或类似变量
  • 字符长度不同。请求中存在一次性token

3、参数测试

遍历测试每一组标记:

(1)是否为参数

篡改标记待测参数的最后一位为不同的数字。

  • 如果响应状态码发生变化、头部字段的名称序列不同、或者响应体部内容不等,那么就有可能为动态参数
  • 为动态参数,可以考虑测试xss和sql注入,以及地址类、ssrf、逻辑漏洞等

(2)可能为参数时是否返回

比较篡改后的参数在样本请求的响应中包含,与测试请求的响应中包含

  • 比较头部字段中分别的包含个数
  • 比较响应体部中分别的包含个数

如果不同,则说明存在返回。

posted @ 2023-05-31 14:52  挖洞404  阅读(26)  评论(0编辑  收藏  举报