网站首页 > 技术文章 正文
一. 概述
用户认证安全方面的问题也许单单从技术层面上讲,并不是一种非常复杂的问题,因为解决起来并不怎么困难;但如果从交易所的实际交易业务层面来看,用户认证方面如果存在安全隐患,那将是非常可怕的。简单试想一下,如果一个黑客可以通过任意账号的用户认证,那这位攻击者会对那些账户里的余额做什么呢......
这只是用户认证安全问题的一个小例子,当然同类的问题还有很多,虽然不尽相同,但其破坏性影响是同样可怕的。零时科技安全团队已经对此类问题做了一些整理,详情可见以下的测试列表,建议各大交易所以此列表自查,规避不必要的安全风险。
二. 测试列表
服务端配置安全
- 用户注册过程测试
- 用户登录过程测试
- 找回密码过程测试
- 设备解绑过程测试
- 验证码策略测试
- 账户权限变化测试
- 帐户枚举测试
- 弱密码策略测试
- 口令信息加密传输测试
- 默认口令测试
- 帐户锁定机制测试
- 认证绕过测试
- 浏览器缓存测试
- 权限提升测试
- 授权绕过测试
- 撞库攻击测试
三. 案件分析
口令信息加密传输测试
“反正数据包也只是在用户和交易所之间传输的,口令要加密干什么”,可能有部分粗心大意的开发人员会这么想,但事实真的是这样吗?口令加密真的没有用吗?显而易见,当然不是这样的。但可能有的开发人员真的会这么想,所以口令信息不加密即传输成为了各大交易所中最常见的问题之一。
口令加密的好处很多,比如可在一定程度上防止爆破;比如用户登录交易所期间被中间人攻击时,攻击者截获的数据包中若没有明文口令信息,即可使攻击者无法轻易获取口令等等。零时科技安全团队在对某交易所进行测试时,发现该交易所的口令信息在传输时已被前端加密。零时科技团队安全研究员随即审计网站前端js代码,寻找登录/重置密码时需要提交的参数,并在找到后,按js内容要求构造未加密数据包向api请求,所幸该交易所对非加密数据包也敞开怀抱,即使是明文数据包,只要参数正确也可发挥作用。最后使用该漏洞和其他漏洞配合,成功登进其他用户账户。
零时科技安全团队建议,各大交易所在传输口令信息时,能够使用加密传输的方式,且最好不要留下加密算法的明显线索(加密用何种算法,密钥是什么等),保障信息安全。
撞库攻击测试
爆破,即暴力破解,意指使用大量可能有效的潜在答案一一尝试,最后留下确实有效答案的攻击手法。爆破虽然笨重,但却时常有效,在和其他问题合作时更能发挥其功能。
撞库,和爆破类似,是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登录的用户。
零时科技安全团队对某交易所进行安全测试时,发现该交易所在账号登录处存在问题,虽然限制每个用户的登录试错次数,但并不限制同一IP对不同用户尝试登录的请求数量。零时科技安全研究员随即对该交易所实施了撞库攻击,最终成功破解出部分用户口令。
零时科技安全团队建议,各大交易所在登录页面应同时使用图形或更复杂形式的验证码;对同一IP发出的请求频率和数量进行限制。
验证码策略
验证码在被正常使用的情况下可以起到一定的安全作用,但如若使用不当或有所疏漏,也会留下隐患。很多交易所看似有验证码放心了不少,其实有可能只是一件“皇帝的新衣”。零时科技安全团队在对某交易所进行安全测试时发现,该交易所在手机登录处需要向用户发送验证码并进行校验。该交易所验证码长度6位,貌似安全性较高,但实则具有递增趋势且递增速度缓慢,爆破验证码时可以轻易确认当前验证码数值所在范围。对于交易所来说,这样的验证码机制就是“皇帝的新衣”;对于攻击者来说,更降低了攻击成本,提高了攻击效率。
零时科技安全团队建议各大交易所使用验证码保障自身安全时,应使用随机多位的验证码,有条件的话最好使用字母和数字混杂的高强度验证码,并限制验证码输入错误的次数,采取一定措施。
账户枚举测试
很多交易所在具有登录功能的点上都会设置不太合适的报错提示,比如“用户不存在”,“密码不正确”等等,但实际上这些报错提示都会泄露出一些关键信息。
零时安全团队在对某交易所进行安全测试时,发现该交易所登录框处存在报错提示不安全的问题。这样的安全问题看似无关紧要,但在黑客进行攻击时,如果可以枚举出存在的用户,无疑可使得攻击范围缩小,为攻击提供便利。
假作真时真亦假,但凭伪造之证,信手指鹿为马,登堂入室。
罔顾用户之安危,岂非人为刀俎,我为鱼肉乎?
猜你喜欢
- 2025-05-08 前端存储革命:IndexedDB 从入门到实战
- 2025-05-08 Go进阶AES对称 Crypto-JS 加密和Go解密
- 2025-05-08 【开源】强烈推荐,国内首个开源国密前后端分离快速开发平台
- 2025-05-08 终于知道公钥、私钥、对称、非对称加密是什么了
- 2025-05-08 前后端分离之http报文数据加密篇(前后端接口加密传输)
- 2025-05-08 如何设计一套二次验证机制来防止非真实用户在12306刷票?
- 2025-05-08 前端安全-漏洞攻防指南(前端攻击以及防御方法)
- 2024-09-17 如何优雅的实现 Spring Boot 接口参数加密解密?
- 2024-09-17 浅析前端加密后数据包的修改方法
- 2024-09-17 前端上传文件或者上传文件夹
你 发表评论:
欢迎- 06-24发现一款开源宝藏级工作流低代码快速开发平台
- 06-24程序员危险了,这是一个 无代码平台+AI+code做项目的案例
- 06-24一款全新的工作流,低代码快速开发平台
- 06-24如何用好AI,改造自己的设计工作流?
- 06-24濮阳网站开发(濮阳网站建设)
- 06-24AI 如何重塑前端开发,我们该如何适应
- 06-24应届生靠这个Java简历模板拿下了5个offer
- 06-24服务端性能测试实战3-性能测试脚本开发
- 567℃几个Oracle空值处理函数 oracle处理null值的函数
- 566℃Oracle分析函数之Lag和Lead()使用
- 550℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 545℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 544℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 536℃【数据统计分析】详解Oracle分组函数之CUBE
- 526℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 519℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)