目录
一、请求头&返回包-方法&头修改&状态码等
数据包:
客户端请求Request
请求方法
请求路径
请求头
服务端返回Response
状态码
-方法
1、常规请求-Get
2、用户登录-Post
•get:向特定资源发出请求(请求指定页面信息,并返回实体主体);
•post:向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改;
•head:与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类
似,返回的响应中没有具体内容,用于获取报头);
•put:向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容),与post的区别是put为幂等,post为非幂等;
•trace:回显服务器收到的请求,用于测试和诊断。trace是http8种请求方式之中最安全的l
•delete:请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
•option:返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户 端查看服务器性能);
•connect : HTTP/1.1协议中能够将连接改为管道方式的代理服务器
-请求头
见上图
-返回头
见上图
-Response状态码
1、数据是否正常
2、文件是否存在
3、地址自动跳转
4、服务提供错误
注:容错处理识别
•-1xx:指示信息—表示请求已接收,继续处理。
•-2xx:成功—表示请求已经被成功接收、理解、接受。
•-3xx:重定向—要完成请求必须进行更进一步的操作。
•-4xx:客户端错误—请求有语法错误或请求无法实现。
•-5xx:服务器端错误—服务器未能实现合法的请求。
•200 OK:客户端请求成功
•301 redirect:页面永久性移走,服务器进行重定向跳转;
•302 redirect:页面暂时性移走,服务器进行重定向跳转,具有被劫持的安全风险;
•400 BadRequest:由于客户端请求有语法错误,不能被服务器所理解;
•401 Unauthonzed:请求未经授权。
•403 Forbidden:服务器收到请求,但是拒绝提供服务。
•404 NotFound:请求的资源不存在,例如,输入了错误的URL;
•500 InternalServerError:服务器发生不可预期的错误,无法完成客户端的请求;
•503 ServiceUnavailable:服务器当前不能够处理客户端的请求
3XX
1、网站做了容错处理 一旦访问了错误页面将跳转到某个固定地址 3XX
中间件规则配置
请求路径或文件 不存在
2、网站代码文件做了跳转 一旦触发就自动跳转到设置的固定地址 3XX
文件代码配置
请求路径或文件 存在
200和404误报问题
网站做了容错处理 一旦访问了错误页面将固定显示某个内容 显示正常
访问错误 返回的状态码200
二、 数据包分析-红队攻击手法&蓝队流量研判
#红队案例:
1、UA头-系统平台
常见举例影响:
-比如网站有UA收集整理功能,如果将UA信息记录到数据库的话,这个过程有接受UA信息及写入数据库的操作,这个地方可能存在SQL注入
-渗透测试习惯
部分网站做了限制设备访问的需求,手机或电脑只能访问一个,如果我们自己要电脑测试需要更改成手机访问才可以继续
2、Cookie-用户身份
3、Post数据-登录爆破
4、返回状态码-文件探针
#蓝队案例:
1、攻击漏洞
2、安全工具
三、数据包构造-Reqable自定义添加修改请求
#Reqable数据包自定义构造
一、Reqable概述
Reqable 是一个灵活的工具,常用于生成和修改 HTTP 请求。它允许用户手动指定请求头、请求体、方法、URL 等,从而构造不同的请求进行测试。
二、数据包构造基本步骤
-
选择请求方法:
-
常见的 HTTP 请求方法包括:GET、POST、PUT、DELETE、PATCH 等。
-
在 Reqable 中,你可以自由选择适合的请求方法来进行模拟。
-
-
URL和路径:
-
自定义请求的 URL 和路径是非常重要的,你可以根据目标系统的接口定义,输入你需要的 URL 路径。
-
例如,发送一个带有特殊路径的 GET 请求,测试目标是否能够正确处理。
-
-
修改请求头(Headers):
-
HTTP 请求头可以用来传递认证信息、用户代理、内容类型等。
-
在 Reqable 中,你可以自由添加、修改或删除请求头,如修改
User-Agent
、Authorization
、Content-Type
等字段。
-
-
构造请求体(Body):
-
请求体通常用于发送 POST 或 PUT 请求时携带数据,常见格式有 JSON、XML、Form 表单等。
-
你可以通过 Reqable 自定义请求体内容,模拟不同的输入。
-
-
参数添加与修改:
-
在 GET 请求中,参数通常附加在 URL 中,如
https://example.com?user=admin&pass=12345
。 -
在 POST 请求中,参数会放在请求体中。
-
你可以使用 Reqable 自定义 URL 查询参数或修改 POST 请求的数据。
-
-
添加 Cookies 或 Session:
-
如果目标应用使用会话管理(如 cookies 或 token),你可以通过 Reqable 添加这些信息,以确保请求的合法性或绕过身份验证。
-
三、Reqable常见用法示例
-
GET 请求:
-
示例 URL:
https://example.com/profile?user=admin&token=abcd1234
-
自定义请求头、查询参数。
-
-
POST 请求:
-
示例 URL:
https://example.com/login
-
自定义请求体(如 JSON 格式):
json { "username": "admin", "password": "password123" }
-
-
自定义 HTTP 请求头:
-
添加
Authorization
头来进行身份验证:
plaintext Authorization: Bearer <your_token_here>
-
-
修改 Cookies 或 Session:
-
在请求头中添加
Cookie
字段来模拟登录后的请求:
plaintext Cookie: sessionid=abcd1234; loggedin=true;
-
四、使用 Reqable 进行安全测试
-
模拟攻击:使用 Reqable 自定义请求进行 SQL 注入、XSS、CSRF 等常见漏洞测试。
-
暴力破解:通过修改请求体中的用户输入,进行暴力破解和密码猜测攻击。
-
绕过认证:修改请求头中的认证信息,如篡改 JWT token 或添加非法 cookies 来绕过认证机制。