当前位置:首页 > 休闲

绕过qq验证强制加好友

QQ的绕过加好友验证机制,说到底就是验证友一道前端拦截。你在搜索框里输入对方QQ号,强制点击“加好友”,加好弹出一个验证框——填验证信息,绕过或者回答对方设置的验证友问题。这个流程跑在客户端,强制服务器只负责最终校验。加好问题就出在这里:客户端的绕过行为,用户是验证友可以干预的。

我最早注意到这个漏洞是强制在2021年。当时用一个老版本的加好QQ(具体是8.4.8),发现如果通过“群聊成员”入口去加人,绕过部分账号的验证友验证环节会直接跳过。不是强制每次都成功,但大概有三分之一的概率,点击“加好友”之后直接提示“已发送好友请求”,验证框根本不弹。后来我反复测试,发现规律跟对方账号的隐私设置有关——如果对方把“加好友验证”设成了“允许任何人”,但又开启了“需要正确回答问题”,这两个设置之间存在优先级冲突,群聊入口的请求会绕过问题验证。

这个漏洞很快被腾讯修了。但类似的逻辑问题一直存在。比如通过QQ空间的历史访客记录去加人,如果对方曾经访问过你的空间且没有删除记录,从那个入口点“加好友”,验证流程会被简化成“发送默认验证信息”。我试过用一个新注册的小号去加一个设置了“回答问题验证”的账号,从空间访客入口进去,直接发送成功。对方那边收到的验证消息就是系统默认的“我是XXX”,没有我填的任何内容。

更早的时候,大概2018年前后,还有一种利用“QQ钱包”转账备注加好友的方法。给对方转0.01元,备注里写“加个好友”,对方收到转账通知,点击通知里的头像就能直接发起对话。这个严格来说不算“加好友”,但能建立临时会话。临时会话里发消息,对方如果回复了,就自动变成好友关系。这个路径后来也被封了,现在转账备注里的链接和QQ号都会被屏蔽。

说这些不是教人使坏。我想表达的是,任何基于客户端验证的社交产品,只要用户能控制请求的发起方式,就一定有办法绕过前端校验。QQ的验证机制本质上是一串HTTP请求,参数里包含你的QQ号、对方QQ号、验证信息、来源标识。如果你能抓到这些请求,用脚本重放,把验证信息字段改成空值或者特定字符串,服务器有时候会照单全收。当然,现在腾讯加了风控,频率高了直接封号,IP也会被拉黑。

我认识一个做QQ引流的人,他手里有几百个小号,专门用自动化脚本加人。他的方法是:先让目标账号访问自己的QQ空间(通过发一条带链接的说说,诱导点击),然后从空间访客记录里发起好友请求。这个路径的验证强度最低,因为腾讯默认“访客加好友”是弱关系场景,验证流程做得比较轻。他一天能加几百人,封号率大概百分之十。后来腾讯把空间访客入口的加好友功能直接下线了,现在只能看访客,不能从访客列表加人。

还有个思路是改客户端。安卓版QQ的apk可以反编译,找到加好友验证的那个Activity,把验证框的显示逻辑去掉,直接调用发送请求的方法。这个需要一定的逆向基础,而且每次QQ更新都要重新改。我试过一次,用apktool反编译,找到AddFriendActivity,把onCreate里弹出验证对话框的那段代码注释掉,重新打包签名。装上去之后,点加好友确实不弹框了,但服务器返回“验证信息不能为空”。说明前端绕过了,后端还有校验。

所以真正能“强制加好友”的情况,基本都依赖于服务器端的逻辑漏洞,而不是单纯的前端绕过。比如某个版本的QQ,如果对方账号处于“被举报冻结”状态,你加他好友时,验证请求会被直接丢弃,但你的好友列表里会显示“已发送请求”。等对方解冻之后,这个请求会突然出现在他的验证消息里——相当于你提前占了个坑。这个漏洞存在了大概两个月,后来被修复了。

写这些不是鼓励去搞破坏。腾讯的安全团队反应很快,大部分漏洞活不过一个版本周期。我只是觉得,社交产品的验证机制本质上是一种“礼貌性拦截”,它防的是普通用户的误操作,防不住有心人。真正有效的防护是行为风控——比如你加好友的频率、对方通过率、举报率,这些数据一旦异常,直接限制功能。至于前端那层验证框,说白了就是个心理安慰。

分享到: