您现在的位置是:物联网 >>正文
我在登录功能埋的坑:HTTP重定向攻击差点让公司背锅(附解决方案)
物联网872人已围观
简介上周我在公司捅了个篓子——自己写的登录模块差点成了钓鱼网站的帮凶。今天就跟大家唠唠这个惊险过程,以及怎么避免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/news/807c599187.html
相关文章
研究人员发现新的Linux内核 StackRot 特权升级漏洞
物联网报道称,Linux内核中出现了一个新的安全漏洞,可能允许用户在目标主机上获得更高的权限。该漏洞被称为StackRotCVE-2023-3269,CVSS评分:7.8),影响Linux 6.1至6.4版 ...
【物联网】
阅读更多酷派7295c_c00手机的功能与性能分析(解读酷派7295c_c00手机的关键特点和用户体验)
物联网随着科技的不断发展,智能手机已经成为了人们生活中不可或缺的一部分。作为一款中低端智能手机,酷派7295c_c00凭借其出色的性能和丰富的功能,受到了广大用户的喜爱。本文将围绕酷派7295c_c00手机 ...
【物联网】
阅读更多Win10电信手机(体验无与伦比的功能和性能,让您的通信更畅快)
物联网在信息时代的浪潮中,通信已经成为我们生活中不可或缺的一部分。而Win10电信手机则以其卓越的功能和性能,为用户带来了无与伦比的通信体验。本文将为大家详细介绍Win10电信手机的各项特点及优势。文章目录 ...
【物联网】
阅读更多
热门文章
最新文章
友情链接
- 探索如何将锁屏变成个性主题(打造独特的手机锁屏体验)
- 温莎资本(揭秘温莎资本的成功秘诀与发展战略)
- 华为Mate9拍摄视频全方位评测(华为Mate9拍视频功能强大,画质出色,满足各类拍摄需求)
- iPhone7防抖技术(探索iPhone7防抖技术的出色表现和关键特性)
- X270在双核CPU中的性能表现(探索X270在双核CPU中的优势和应用场景)
- HTCM8像素之超越期待的照相机(HTCM8搭载的照相技术让您拍照更具细节和清晰度)
- M8peg与750比较(一探M8peg和750处理器之间的差异与应用场景选择)
- 揭秘苹果耳机6s音质的绝佳表现(聆听细节世界,感受耳边的音乐奇迹)
- 比较骁龙410和435(骁龙410与435的区别以及适用场景)
- 创意雨伞(用独特设计和多功能特性为雨季增添无限乐趣) 云服务器企业服务器b2b信息平台香港物理机网站建设源码库亿华云