前言
作为一个~合格的MJJ~,前段时间一直在使用TCShare+Cloud189搭建高速个人云盘使用。然而天有不测风云,电信前几天突然对API Key下手了,直接导致了TCShare翻车 ,所以打算转战其他列表程序。综合比较以后还是感觉萌咖大佬写的CTList功能比较齐全,部署比较方便。然而,由于某些原因萌咖大佬删库并停止了赞助通道的开放,导致现在新用户无法获取授权码启动程序,本着自力更生丰衣足食的想法,我决定对CTList的授权码验证进行破解。破解思路采取伪造授权服务器。(逆向是不可能的,这辈子都不会去逆向)
1 抓包分析
由于CTList提供了Windows版程序,所以就可以直接使用Windows平台强大的抓包软件Fiddler。这里我们使用Fiddler4+Proxifier对CTList进行抓包。~省略一万字~,综上很容易得到CTList的验证授权码的地址为 https://api.moeclub.org/CTListAuth
,POST内容为json,格式为{"授权码": "天翼云盘用户名"}
。直接去浏览器中访问该地址会得到一个404 Not Found,开启HackBar输入个随意编造的POST内容会返回403 Forbidden。找了个正确的授权码+天翼云盘用户名POST上去,服务器会返回206 Partial Content。读到这里我觉得大部分人应该都知道怎么破解了吧,自己去伪造个验证服务器,用Hosts把api.moeclub.org劫持到本地,无论请求什么都返回206就可以做到无视授权码了。(经过测试伪造授权服务器后就算xjb填的授权码也可能无法通过验证,可能是程序判断了授权码长度,这里随便提供了一个授权码的样本e4d3ab9de0a227e8b5b838d90bdcdc7a)
2 自建验证服务器
读完Part 1我觉得大部分人应该已经可以自力更生了 ,如果你读完还是不会请跟着下文进行操作 。适用平台为Debian/Ubuntu。
生成自签名SSL证书
安装OpenSSL
sudo apt install openssl
sudo apt install libssl-dev
生成CA证书
openssl genrsa -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt
给系统添加全局根证书
sudo apt install ca-certificates
sudo mkdir -p /usr/share/ca-certificates/local
sudo cp ca.crt /usr/share/ca-certificates/local/
sudo dpkg-reconfigure ca-certificates #选中刚才添加的local/ca.crt证中,然后确定安装
CentOS则将生成的ca.crt复制到/etc/pki/ca-trust/source/anchors,然后执行/bin/update-ca-trust
生成api.moeclub.org的自签名证书
openssl genrsa -out server_pri.key 1024
openssl req -new -key server_pri.key -out server.csr #在最后输入Common Name时填入api.moeclub.org
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
安装nginx
Debian:
sudo apt install curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt update
sudo apt install nginx
Ubuntu:
sudo apt install curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt update
sudo apt install nginx
Caddy、宝塔什么的都行,你开心就好
nginx配置
sudo nano /etc/nginx/conf.d/api.moeclub.org.conf
输入以下内容
server {
listen 127.0.0.1:443 ssl; #建议只监听本地环回如果CTList也搭载相同服务器上
server_name api.moeclub.org;
ssl_certificate /path_to_cert/server.crt;
ssl_certificate_key /path_to_key/server_pri.key;
location / {
return 404;
}
location /CTListAuth {
return 206;
}
}
更改hosts
nano /etc/hosts
127.0.0.1 api.moeclub.org
搭建CTList
建议参考清风伴梦或者Rat's Blog的文章
原文:https://swjtu.today/archives/CTList.html
其他
生成CA证书和自签名证书,亦可以使用KeyManager
这款软件。
如果验证服务器不是本机,则不要用国内服务器搭建验证服务器,这端口还要备案TAT