文章目录
HTTP数据包
1、HTTP/S数据包请求与返回
2、请求包头部常见解释和应用
3、返回包状态码值解释和应用
4、HTTP/S测试工具Postman使用
Request请求数据包结构
Request请求方法(方式)
1、常规请求 -Get
2、用户登录 - Post(大多登录或文件上传用Post,但用别的也可以,不一定)
方法罗列:
-
get:向特定资源发出请求(请求指定页面信息,并返回实体主体);
-
post:向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改;
-
head:与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类
似,返回的响应中没有具体内容,用于获取报头);
-
put:向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容),与post的区别是put为幂等,post为非幂等;
-
trace:回显服务器收到的请求,用于测试和诊断。trace是http8种请求方式之中最安全的l
-
delete:请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
-
option:返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户 端查看服务器性能);
-
connect : HTTP/1.1协议中能够将连接改为管道方式的代理服务器
请求头(Header)
重点:
User-Agent(UA),区分浏览器和操作系统以及版本,有些网站会根据访问设备的不同来提供不同的,个性化的服务(例如PC端和手机端显示界面不同),或者限制一些设备的访问
Cookie,存储登录的身份凭据
MDN详解:
https://developer.mozilla.org/zh-CN/docs/web/http/headers
安全测试例子:
某个APP有个漏洞,在PC端复现测试该漏洞时,可能会出现异常(数据包不同,PC访问特定地址和APP访问的数据包不同,可能会无法显示,无法处理),需要更改UA头以发送请求数据包。
Response响应数据包结构
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:服务器当前不能够处理客户端的请求
判断网站文件是否存在的状态码(常用
200 文件存在
404 文件不存在
403 文件夹存在(没有索引,index.php)
500 可能存在或不存在,服务器错误,没处理好请求,不知道文件/文件夹是否存在
3xx 重定向,可能存在或不存在
1、容错处理,网站访问错误就自动跳转到某个页面,不存在
2、访问某个文件,自动触发跳转,存在
相关工具
BurpSuite
扫描网站目录
御剑
Postman
写请求,自定义请求的工具,自定义任意的头和内容,发包测试
常常用来提交HTTP数据包的工具,API接口渗透测试和HTTP发包测试中和burpsuite都会经常会用到,有些功能相对burp来说更智能便捷
burp是集抓包和修改与一体的工具,两款工具有各自的优势,根据情况选择性使用
安全测试举例:
sqlmap -u www.xxx.com/x.php?id=1 不存在 因为默认sqlmap访问头进行注入
sqlmap -r data.txt 存在 采用提交的数据包去访问
测试思路
-
数据包唯一性
安全测试部分测试需要数据包一致
-
数据包可修改性
通过对数据包修改增加等测试安全问题