HTTP/HTTPS
- 加密方式
HTTP:使用明文传输,数据在传输过程中可以被任何人截获和查看。
HTTPS:通过SSL/TLS协议对数据进行加密,确保数据在传输过程中不被第三方截获和篡改。
- 身份验证
HTTP:不需要进行身份验证,任何人都可以访问网站。
HTTPS:通过数字证书和SSL/TLS协议验证服务器的身份,防止"中间人攻击"。
- 端口号
HTTP:默认使用80端口。
HTTPS:默认使用443端口,提供更高的安全性。
举例:
使用wireshark进行抓包:
1.对于http:
在抓包端

在network端:
可以看到
2.对于https:
打开tls发现什么都看不到。

在network端:
也可以看到
原因:
数据走向问题:1.一个是在网卡抓到。2.一个是在发送前抓到
身份验证鉴权技术:
Cookie,Session,Token,JWT,oauth2等
参考:https://mp.weixin.qq.com/s/Z6rt_ggCA8dNVJPgELZ44w
Oauth就是第三方微信登录
应用场景:
Cookie+Session简单,建议在内网使用;
Token相对完善,推荐在跨域外网使用;
JWT推荐使用,常用在SSO单点登录中;
OAuth灵活方便,对于第三方系统登录更友好。
下面的qq,微信,微博证明使用了OAuth技术:
流程图:
1.访问客户端(百度)去到授权服务器询问登录授权
2.访问后重定向到客户端


抓包得到以下数据:


OAuth真实应用抓包分析:


vipread网站实操:


实战运用:
改权限:login变成all
劫持跳转:从正常网站到小迪8的网站

原本是a网站,跑到了b网站上面去了。

安全漏洞问题:
1、redirect_url 校验不严格导致code被劫持到恶意网站(fuzz各种bypass方式)
2、client_id与redirect_url 不一致造成滥用劫持
3、A应用生成的code可以用在B应用上
4、state未设置csrf防护,导致csrf风险
5、scope提权,将低scope权限的code用于高权限场景
6、HTTP劫持,网络层中间人攻击
7、点击劫持:通过点击劫持,恶意网站会在以下位置加载目标网站: 透明 iFrame(参见 iFrame )覆盖在一组虚拟的顶部 精心构造的按钮直接放置在 目标站点上的重要按钮。当用户单击可见的 按钮,他们实际上是在单击一个按钮(例如"授权" 按钮)在隐藏页面上。
Authorization头:
参考:https://juejin.cn/post/7300812626279251987
授权方案:
1、Basic认证

2、Digest认证
3、Bearer认证
4、JWT认证
典型的jwt特征,有3段

或者去jwt.io去查询:

5、API密钥认证
6、双因素认证
7、其他一些认证方式
安全漏洞问题:
JWT攻防,Token劫持等