前言

作为一个~合格的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的文章

Rat's Blog传送门

清风伴梦传送门

原文:https://swjtu.today/archives/CTList.html

其他

生成CA证书和自签名证书,亦可以使用KeyManager这款软件。

如果验证服务器不是本机,则不要用国内服务器搭建验证服务器,这端口还要备案TAT

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2020 年 09 月 06 日 03 : 34 PM
如果觉得我的文章对你有用,请随意赞赏