您现在的位置是:数据库 >>正文
我在登录功能埋的坑:HTTP重定向攻击差点让公司背锅(附解决方案)
数据库8337人已围观
简介上周我在公司捅了个篓子——自己写的登录模块差点成了钓鱼网站的帮凶。今天就跟大家唠唠这个惊险过程,以及怎么避免HTTP重定向攻击这个"隐形炸弹"。一、那个让测试妹子暴走的早晨事情发生在某个阳光明媚的周一 ...
上周我在公司捅了个篓子——自己写的登录定登录模块差点成了钓鱼网站的帮凶 。今天就跟大家唠唠这个惊险过程,功能攻击锅附以及怎么避免HTTP重定向攻击这个"隐形炸弹" 。差点
一 、司背那个让测试妹子暴走的解决早晨
事情发生在某个阳光明媚的周一,测试组的登录定小美突然冲进我们开发组 :"你们的服务器租用登录接口被劫持了!用户点完登录直接跳转到赌博网站!功能攻击锅附"
我当时的差点反应:"绝对不可能 !我明明做了URL白名单验证..."
1.1 问题重现:用户登录变赌博
我们复现了问题场景 :
用户访问 www.our-app.com/login?司背redirect=/profile输入正确账号密码页面跳转到...澳门首家线上赌场(!)我盯着浏览器的解决Network面板,发现请求里赫然有个302状态码:
复制HTTP/1.1 302 Found Location: https://malicious-site.com?登录定steal_cookie=123abc1.2.关键问题解析 :起初我们以为用户访问的是正常路径/profile ,亿华云但实际攻击发生时,功能攻击锅附redirect参数是差点经过精心伪装的 :
图片
实际跳转地址变成 :https://our-app.com//malicious-site.com浏览器自动解析为:https://malicious-site.com
为什么测试时没发现 ?我们在测试环境用的都是类似/profile的简单路径 ,完全没料到这些骚操作:
//外部网站 的源码下载司背路径拼接攻击@恶意域名 的特殊解析%编码 的绕过手法二 、解剖这只"重定向蟑螂"
2.1 重定向的解决工作原理
图片
就像快递员送错包裹:
用户说 :"送完这个去A地址"(带redirect参数)服务器说:"好的,下个包裹送到B地址"(返回302+Location)快递员(浏览器)无脑照做2.2 漏洞代码长啥样 ?
这是我最初写的危险代码(Java示例):
复制// 危险示范!请勿模仿 !香港云服务器 String redirectUrl = request.getParameter("redirect"); response.sendRedirect(redirectUrl);1.2.3.三、我是怎么填坑的
3.1 第一层防护:白名单验证
复制List<String> allowedPaths = Arrays.asList("/profile", "/dashboard"); if(!allowedPaths.contains(redirectParam)){ redirectParam = "/default"; // 跳转到安全页面 }1.2.3.4.5.3.2 第二层防护:签名校验
给redirect参数加"防伪码":
复制# 生成签名 sign = hashlib.sha256(redirect_path + SECRET_KEY).hexdigest() safe_url = f"{ redirect_path}?sign={ sign}" # 验证时 client_sign = request.GET.get(sign) server_sign = hashlib.sha256(redirect_path + SECRET_KEY).hexdigest() if client_sign != server_sign: abort(403)1.2.3.4.5.6.7.8.9.3.3 第三层防护 :相对路径转换
把绝对URL变成相对路径 :
复制// 把 https://www.our-app.com/profile 转为 /profile function sanitizeRedirect(url) { return new URL(url).pathname; }1.2.3.4.四 、预防重定向攻击的五个要点
绝不信任客户端传参:把redirect参数当嫌疑人审禁用开放重定向:就像不给陌生人留家门钥匙设置跳转延迟 :重要操作前加二次确认记录可疑日志 :给异常跳转装监控定期安全扫描 :用自动化工具查漏五、血泪教训总结
这次事故让我明白 :安全不是功能,而是底线。源码库现在每次处理重定向时,我都会默念三遍:
"用户传参猛于虎 ,未经验证就是赌 ,白名单加签名锁 ,安全红线不能触。"
最后送大家一个自查清单:
• [ ] 所有redirect参数是否强制校验 ?
• [ ] 是否存在裸跳转(直接拼接URL) ?
• [ ] 是否配置了CSP安全策略?
• [ ] 是高防服务器否禁用非必要的HTTP方法 ?
• [ ] 是否定期进行渗透测试?
Tags:
转载:欢迎各位朋友分享到网络,但转载请说明文章出处“商站动力”。http://www.noorid.com/html/807c599187.html
上一篇:相等有时候也不安全!你知道吗?
下一篇:聊一聊软件项目管理方法
相关文章
又一“邪恶版”ChatGPT出现,专为网络犯罪而生
数据库最近,Hackread 分享了一个恶意聊天机器人 WormGPT 的详细信息,该聊天机器人是为帮助网络犯罪分子进行非法活动而创建的。现在,暗网上又出现了一个名为 FraudGPT 的聊天机器人。这是一 ...
【数据库】
阅读更多云计算安全综述
数据库1、绪 论云计算是分布式计算技术的一种,其最基本的概念是透过网络将庞大的计算处理程序自动拆分成无数个较小的子程序,再交由多部服务器所组成的庞大系统经搜寻、计算分析之后将处理结果回传给用户。云计算的架 ...
【数据库】
阅读更多无线网络常见安全威胁
数据库1、无线网络安全研究现状在过去的几十年中,为满足人们的需求,无线通信基础设施和服务一直在激增。根据国际电信联盟2013年发布的最新统计数据,全球移动用户数量已达到68亿个,现在世界上几乎40% 的人口 ...
【数据库】
阅读更多
热门文章
最新文章
友情链接
- OPPO R7主要特点是什么
- 华硕ZX53VW散热能力解析(性能炸裂,散热不退步!)
- 红米Note恢复出厂设置密码是什么
- 使用戴尔笔记本微PE装Win10的详细教程(快速方便地安装Windows10操作系统的方法)
- 三星galaxy xcover3配置怎么样
- 安卓手机怎么空手接电话
- SupremeFXS1220音效技术评测(探索SupremeFXS1220音效芯片的卓越性能与创新功能)
- 威刚UV150的优势及性能测评(一款可靠高效的存储解决方案)
- 相机CF卡芯片损坏解决方法(教你应对相机CF卡芯片损坏的情况,避免数据丢失)
- 如何更换联想Ideapad720s键盘(简单、快速、有效,轻松替换您的键盘) 云服务器企业服务器源码库网站建设香港物理机亿华云b2b信息平台