HTTP请求与响应

http抓包是明文账号密码
1.建立连接 2.发送请求数据包 3.返回响应数据包 4.关闭连接

https抓包加密账号密码
1.https请求 2.服务器响应 3.客户端证书校验,生成密码,公钥加密 4.客户端向服务器传输加密信息 5.服务器私钥解密,解密握手消息,验证HASH 6.服务器向客户端传输加密信息 7.客户端解密握手消息,验证HASH 8.客户端和服务器正常加密通信
http加载会比https加载要快

https抓包过程
在https抓包中抓包工具对客户端来说相当于服务器,对服务器来说相当于客户端。传输过程中,客户端以为他就是目标服务器,服务器也会以为他就是发起请求的客户端。
1.客户端连接抓包工具提供的代理服务
2.客户端需要安装抓包工具的根证书
3.客户端发出https请求,抓包工具模拟服务器与客户端进行tls握手交换秘钥等流程
4.抓包工具发送一个https请求给客户端请求的目标服务器,并与服务器进行tls握手交换秘钥等流程
5.客户端使用抓包工具协定好的秘钥加密数据后发送给抓包工具
6.抓包工具使用与客户端协定好的秘钥解密数据,并将结果展示
7.抓包工具将解密的客户端数据,使用与服务器协定好的秘钥进行加密后发送给目标服务器
8.服务器解密数据后,做对应逻辑处理,然后将返回结果使用与抓包工具协定好的秘钥进行加密发送给抓包工具
9.抓包工具将服务器返回的结果,用与服务器协定好的秘钥解密,将结果展示
10.抓包工具将解密后的服务器返回数据,与客户端协定好的秘钥进行加密后发送给客户端
11.客户端解密

客户端向服务器请求证书,中间人拦截,代替客户端向服务器请求。服务器向客户端返回证书,中间人拦截,将自己证书返回给客户端。客户端信任中间人生成的证书(前提是在本地客户端安装中间人证书并信任)客户端用中间人公钥加密对称秘钥发给服务器,中间人拦截,用自己私钥解密对称秘钥,然后用服务器公钥加密在发给服务器。服务器解密对称秘钥,发送响应给客户端,中间拦截,解密报文,修改证书在发给客户端。
总结:
1.https不是单独的一个协议,他是http+ssl/tls的组合
2.tls是传输层安全性协议,他会对传输的http加密,用非对称加密和对称加密的混合方式
3.抓包工具的原理就是“伪装”,对客户端伪装成服务器,对服务器伪装成客户端
4.使用抓包工具抓https包必须将抓包工具的证书安装到客户端本地,并信任
5.https数据只是在传输时进行加密,而抓包工具接收后到数据后在重新加密转发,所以抓包工具抓到https包可以直接看见明文

ssl证书通过客户端和服务器建立一条ssl安全通道对传输的数据进行加密和隐藏,确保数据在传输过程不被监听,窃取和篡改,保证数据安全和完整性。认证网站服务器的真实身份。

http基于tcp连接的基础上,tcp建立连接,不涉及请求的实际数据,简单的传输。http收发数据。http中的数据是利用tcp协议传输,所以支持http也就一定支持tcp
ftp协议要用到两个tcp连接,一个是命令链路,用来在ftp客户端与服务器之间传递命令:另一个是数据链路,用来上传或下载数据
ssh用于计算机之间的加密登录。从本地计算机,使用ssh协议登录另一台远程计算机。
http,ftp,ssh都属于应用层协议,都要依靠tcp连接

请求行:由三个标记组成 请求方法,请求url和http版本,它们用空格分开

GET:说明HTTP方法的动词。最常用的方法为GET,他的主要作用是从web服务器获取一个资源。GET请求没有消息主体,因此在消息头后的空白行中没有其他的数据。常用的HTTP版本为1.0和1.1,多数浏览器默认使用1.1版本,两个版本规范存在一些差异。当攻击web应用程序时,渗透测试员可能遇到唯一差异是1.1必须使用Host请求头。
HEAD:与GET方法相同,服务器只返回状态行和头标,不返回请求文档
POST:服务器接受被写入客户端输出流中的数据的请求
PUT:服务器保存请求数据作为指定URL新内容的请求
DELETE:服务器删除URL中的命令资源的请求
OPTIONS:关于服务器支持的请求方法信息的请求
TRACE:web服务器反馈http请求和其头标的请求
CONNECT:已文档化,但当前未实现的一个方法。预留做隧道处理

请求头:

Host:网站域名

Connection:close连接关闭,客户端已经连接到服务器返回所需要页面,服务器和客户端关闭连接

Cache-Control:向浏览器传送缓存指令如(no-cache不缓存)(max-age=0)缓存

Upgrade-insecure-Requests:1 让浏览器自动升级请求从http到https,用于大量包含http资源的http网页直接升级到https而不会报错,相当于在http和https之间的一个过度作用

User-Agent:请求客户端系统信息,浏览器名字版本(伪造连接设备信息)
Accept:表示浏览器支持MIME类型分别是text/html,application/xhtml+xml,application/xml和*/,从左到右的优先排列顺序(表示当前浏览器希望接受什么类型的文件,这是请求首部,当服务器没有客户端想要的资源媒体类型时,会返回406 Not Acceptable。使用/*表示接受任意类型的资源,所以不会看见这个响应。q表示权重,权重0-1之间,可以理解成客户端在给出的这些类型中最想优先接受什么类型,服务器就可以根据客户端需要返回相应的资源)如果没有则默认为1,这里前面几个类型都没有标明,则默认是1,表示优先这些类型,后面的0.9表示前面都没就用这个,最后的0.8表示如果都没有,那么任意类型都行
(Text:标准化的表示的文本信息,文本消息可以是多种字符集或多种格式
text/html:表示html文档
Application:用于传输应用程序数据或者二进制数据
application/xhtml+xml表示xhtml文档
application/xml表示xml文档)

Referer:表示发出请求的原始url(伪造进入web页面连接地址)

Accept-Encoding:指出浏览器可以接受的编码方式,编码方式不同于文件格式,他是为了压缩文件并加速文件传输速度,浏览器接受到web响应之后先解码,在检查文件格式

Accept-Language:表示浏览器所支持语言的类型,zh-cn表示简体中文;zh表示中文
q是权重系数,范围0=<q<=1,q值越大,请求越倾向于获得其“;”之前的类型表示内容,若没有指定q值,默认为1,若为0,用于提醒服务器那些是浏览器不接受的内容类型

Cookie:记载服务器相关的用户信息,提高网页访问速度,也可以实现会话功能

X_FORWARDED_FOR:是用来识别通过http代理或负载均衡方式连接到web服务器的客户端最原始的ip地址的http请求头字段(伪造ip地址)

空行:最后一个请求头之后是空行,发送回车符和退行,通知服务器以下不再有头标

响应:由四个部分组成 状态行,响应头标,空行,响应数据
1.状态行:协议版本、数字形式的状态代码和状态描述,个元素之间以空行分隔
http响应码:
1xx:信息,请求收到,继续处理
2xx:成功,行为被成功的接受,理解和采纳
3xx:重定向,为了完成请求,必须进一步执行的动作
4xx:客户端错误
5xx:服务器错误

200 存在文件 403 存在文件夹 3xx均可能存在 404 不存在文件及文件夹 500 均可能存在

2.响应头标:服务器类型,日期,长度,内容等
3.空行:响应头与响应体之间用空行隔开
4.响应数据:浏览器将实体内容中的数据取出来,生成相应的页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李玉鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值