利用cookie绕过登录
浏览器里点了一下“记住我”,利用下次访问就不用输密码了。绕过这个便利背后藏着一个简单的登录原理:服务器把一串凭证塞进你的Cookie里,之后每次请求都靠它认人。利用绕过登录的绕过本质,就是登录把这串凭证偷过来,或者伪造出来。利用 我见过最蠢也最有效的绕过攻击,发生在某个小公司的登录后台系统。开发人员图省事,利用把用户角色直接写进了Cookie: 稍微复杂点的玩法叫会话固定攻击。攻击者先自己登录,拿到一个合法会话ID,然后想办法让受害者使用这个ID。最常见的手法是在登录链接后面塞参数,比如 更高级的窃取手段是XSS配合Cookie读取。往评论区插一段JavaScript脚本,管理员一浏览页面,脚本就执行 还有种物理层面的绕过——直接翻浏览器文件。Chrome的Cookie存在SQLite数据库里,虽然加密了,但Windows系统的DPAPI密钥就在当前用户目录下。用工具解密,或者干脆写个小程序调用系统接口,就能还原所有明文Cookie。我曾在共享电脑上试过,从开机到拿到上一个人的Gmail会话,用了不到三分钟。别以为锁屏就安全,只要硬盘没加密,一切白搭。 防护手段其实不复杂,但执行起来总打折扣。关键点在于:会话ID必须随机且足够长,登录成功后强制更换ID,Cookie加上 写这段文字时,我顺手检查了自己常用的几个网站。有个银行网站居然还在用弱会话ID生成算法,时间戳加固定前缀,稍微推算就能预测下一个有效的会话值。我没真去试,但光看着就后背发凉。技术从来不是壁垒,懒惰才是。role=user。绕过我手动改成role=admin,登录刷新页面,利用后台管理界面就亮在我眼前了。绕过整个过程不到十秒,登录连密码都没碰过。这种漏洞在2024年依然存在,因为总有开发者把客户端数据当可信输入。?sessionid=攻击者的ID。受害者登录成功后,服务器没重新生成ID,那攻击者就能用同一个ID冒充受害者。这招在老旧系统里命中率奇高,尤其那些还在用URL传递会话参数的。document.cookie,把会话凭证发到攻击者的服务器上。管理员权限的Cookie一到手,整个站就等于脱光了。我测试过某论坛,用了个简单的就拿到了版主账号,后来报告漏洞时对方还一脸震惊。HttpOnly和Secure属性,服务器端定期校验用户代理和IP段。这些做齐了,绝大多数绕过尝试都会碰壁。可惜现实是,很多系统只做到了其中一两项,甚至一项都做不到。