webticket-bind.sh

20260916-201504 轮 · 看它的历史
靶子 BASE=http://localhost:20098  容器=wt_h8_tp8
  PASS  A0 攻击者登录拿到 Bearer(靶子活着,验证码链通)

【A 组 · 登录 CSRF 已关(漏洞本体)】
  PASS  A1 受害者 jar(全新 cookie)兑攻击者的票 → 403
  PASS  A2 受害者会话里没有 c1_userid(真的没建会话)
  PASS  A3a 受害者打过之后,那张票攻击者自己也兑不了了(票在绑定闸之前就被消费)
  PASS  A3b 攻击者用自己新开的票 → 302(守卫方向:合法路径没被误伤)
  PASS  A4 把攻击者的 bind cookie 手工塞进全新 jar → 302(判据确实是这枚 cookie)

【B 组 · 一次性没有被本次改动破坏】
  PASS  B5 同一张票二次使用 → 403

【C 组 · 同一浏览器并发多张票互不失效(选浏览器级 id 而非票级 nonce 的理由)】
  PASS  C6 先后开的两张票都能各自兑现(不是后一张把前一张挤掉)

【D 组 · cookie 形态与复用分支】
  PASS  D7 Set-Cookie 带 HttpOnly(前端读不到)
  PASS  D8 Set-Cookie 带 SameSite=Lax 且 Path=/
  PASS  D9 第二次 createWebTicket 不再重发 WxWebBind(复用既有 id)
  PASS  D10 响应体 data.bind 是 32 位小写 hex(客户端搬得动)
  PASS  D11 同一浏览器两次拿到的 bind 相同

PASS=13 FAIL=0