拿到一个请求如何渗透
遵循由小到大进行测试。
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)可能为参数时是否返回
比较篡改后的参数在样本请求的响应中包含,与测试请求的响应中包含
- 比较头部字段中分别的包含个数
- 比较响应体部中分别的包含个数
如果不同,则说明存在返回。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战