声明:本文仅供学习研究,切勿用于非法用途
Emby通过服务器mb3admin.com验证客户端是否具有高级会员授权,一旦验证通过后,会在客户端内保留一段时间的缓存信息。
因此可以通过修改host劫持域名mb3admin.com,使客户端连接到虚假服务器,获得虚假授权。由于缓存机制的存在,即使短时间离开劫持环境,仍然可以继续使用高级会员功能。
简单记录一下步骤:
-
修改OP路由器的host文件,使得域名mb3admin.com指向VPS的IP
-
准备证书,可以通过GMCert.org进行线上签发:
- 选择RSA算法,2048位加密,主题名称/CN填入“mb3admin.com”
- “选择CA”条目的最后面有个“↓”,点击下载CA证书
- 打开高级选项,选择普通证书
- 主题备用名称填
DNS.1=mb3admin.com
DNS.2=*.mb3admin.com- 密钥用途:数字签名 | 加密密钥 | 加密数据
- 扩展密钥用途:服务器认证 | 客户端认证
- 证书有效天数:824
- 证书链选项中勾选“自动包含CA证书链”
- 点击“签发证书”,下载密钥和SSL证书
-
将密钥和SSL证书上传到VPS,将CA证书安装到PC/iOS设备/Android设备等
- 在VPS上通过nginx部署验证服务器,添加密钥和证书,通过伪静态配置实现验证所需的返回值
server {
listen 80;
listen 443 ssl;
server_name mb3admin.com;
ssl_certificate /var/www/embyact/ssl.pem;
ssl_certificate_key /var/www/embyact/ssl.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/embyact;
index index.html;
}
location /admin/service/registration/validateDevice {
default_type application/json;
return 200 '{"cacheExpirationDays":365,"message": "Device Valid","resultCode": "GOOD"}';
}
location /admin/service/registration/validate {
default_type application/json;
return 200 '{"featId":"","registered":true,"expDate":"2099-01-01","key":""}';
}
location /admin/service/registration/getStatus {
default_type application/json;
return 200 '{"deviceStatus":"","planType":"","subscriptions":{}}';
}
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers *;
add_header Access-Control-Allow-Method *;
add_header Access-Control-Allow-Credentials true;
}
- 在安装Emby服务端的服务器或Docker中添加CA证书(搜索ca-certificates.crt和ca-bundle.crt文件进行添加)