WeChall - Eigentor (Special, Tor)

Challenge

WeChall 上的 Eigentor(Special, Tor),要求通过 Tor 访问 Edward Snowden Land(https://es-land.net),注册后在 Account Settings 的 TorChallenge 分类获取一次性 16 位 token,提交即完成。

WeChall 服务端验证方式:POST answer → 调用 https://es-land.net/torchallenge;trytoken.json?token=<answer>{"status":0} 无效 / {"status":1} 正确 / {"status":2} 已使用。

Solution

启动 Tor(系统 torrc 有 User 指令需 root,创建自定义配置):

1
2
3
4
5
6
7
cat > /tmp/torrc << 'EOF'
SocksPort 9050
DataDirectory /tmp/tor_data
Log notice file /tmp/tor_log
EOF
mkdir -p /tmp/tor_data
tor -f /tmp/torrc &

i manually sign up btw

登录 ESL(通过 SOCKS5 代理,cookie jar 绑定 session):

1
2
3
curl --socks5-hostname 127.0.0.1:9050 -c /tmp/esl.txt \
-d 'login=Return4837&password=<pw>&submit=Login' \
'https://es-land.net/login;form.html?_lang=en'

提取 token — account settings 页面的 eigentor 字段只有从 Tor exit node 访问时才被填充。非 Tor 访问时空值:

1
2
3
curl --socks5-hostname 127.0.0.1:9050 -b /tmp/esl.txt \
'https://es-land.net/account;allsettings.html?_lang=en' | \
grep -oP 'name="eigentor"[^>]*value="\K[^"]+'

返回 <TOKEN> — 16 位字母数字 token。