业务逻辑之身份认证安全

本文探讨了验证码的安全机制,包括图形验证码的复杂性、动态设计和绕过方法,同时揭示了短信验证码的漏洞,以及身份证安全和密码找回过程中的风险。用户输入合规性在防止数据异常和攻击中的关键作用也被提及。
摘要由CSDN通过智能技术生成

1.验证码安全
图形验证码
短信验证码
2. 身份证安全
3. 密码找回漏洞
4. 用户输入合规性

验证码安全
验证码(Captcha)是一种广泛用于互联网应用程序中的安全机制,旨在验证用户是真实的人类而不是自动化程序或恶意机器人。验证码的原理是通过提出一些对人类容易回答但对计算机难以回答的问题,来阻正化攻击和恶意行为。原理如下:

  • 图像识别: 验证码通常以图像或图形的形式呈现给用户,包括数字、字母、特殊字符或图案。用户需要识别并输入验证码中显示的内容。
  • 随机性:验证码的生成通常具有一定的随机性,以增加攻击者猜测的难度。每个验证码可能会随机选择字符、颜色、字体和位置等属性。
  • 失真和噪声: 为了增加图像识别的难度,验证码图像通常会添加一些失真、扭曲和噪声,使图像更难以被光学字符识别(OCR)或自动化脚本识别。
  • 时间限制: 验证码通常有一个时间限制,要求用户在一定时间内完成识别和输入。

利用场景
1.登录注册重置密码
2.活动秒杀
3.点赞发帖
4。数据保护、支付、修改重要账户信息、评论细心留言…

验证码漏洞修复方案
1.增加复杂度
2.添加噪声和失真
3.动态验证码
4.图像反扭曲
5.多因素身份验证
6.定期更新设计

图形验证码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
等等
图形验证码绕过

  1. 图形验证码不刷新或无效
    2.在这里插入图片描述
    手工尝试一次登录后,在某一时间段内无论登录失败多少次,只要不刷新页面 Session 不过期,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解。

  2. 验证码复用
    在这里插入图片描述
    当你打开常见的一些需要登录之类的系统,通常系统会自动请求一次验证码,抓包,抓住别放,保持Session不变。

  3. 存在无验证码页面
    经过测试,如果我们发现网站验证码自身并不存在缺陷,那我们接下来就可以尝试寻找一些其他的登录页面或接口来尝试暴力破解。如隐藏的页面、测试页面、老旧版本的页面等。
    在这里插入图片描述

  4. 万能验证码
    渗透测试的过程中,有时候会出现这种情况,系统存在一个万能验证码,如0000、9999只要输入万能验证码,就可以无视验证码进行暴力破解。

  5. 验证码数量有限
    多见于计算类型的验证码,如 1+2=?,这种类型的验证码严格意义上来说不能叫做验证码,多刷新几次验证码,我们可能会发现系统中的算数题目只有那么几道,这种情况下只要将验证码全部下载下来,生成一个 md5 库,然后将前端生成的验证码与本地文件进行对比即可

  6. 简单验证码识别
    那我们就可以尝试在平常的漏洞挖掘过程中,如果我们发现登录的验证码非常简单且易于识别,使用自动化工具来进行登录破解了,如 PKAV 的 HTTP Fuzzer、bp插件等。

短信验证码
短信验证码绕过

1.短信验证码生命期限内可暴力枚举
2.短信验证码在数据包中返回

3.修改请求数据包参数或 Cookie值绕过
比如有 post 数据包:mobile=18888888888&userid=00001, Cookie中有:
codetype=1
在特定步骤,修改 mobile=自己的手机号,自己手机就可以收到别人的验证码,后面
再用别人的手机号和接收到的验证码登录;
修改 Cookie 中可疑的参数和值,进行绕过,比如上面修改 codetype=0;

4.修改返回包绕过
举个简单的例子:提交错误的短信验证码,返回包中有: status=false,用 Burpsuite 的 “Do
intercept” 功能修改为 status=true,即可绕过前端判断,成功进入系统。具体还要结合实际的场景,
灵活操作。

5.攻破短信验证码接口
1、有些网站会遗留短信验证码测试页面,比如/smstest.html等,如果能找到并且还可以正常使用。
2、一般系统的短信验证码功能,都会有个接口平台可以获取到手机接收到的所有短信,找到并攻破也能进入系统

6.默认万能验证码
之前遇到过短信验证码输入9999,就可以登录任意用户账号的漏洞。
为了方便测试以及维护,有的系统会留有万能验证码,上线后还保留着。可能是固定的写在
配置文件、js文件或代码中,也可能是随时间变化的

7.验证码无校验
任意密码重置,随意输入验证码就可以修改别人用户的密码,就直接得到了其他用户的账号,危害十分巨大

身份证安全
身份认证是应用程序和系统中的关键组成部分,用于验证用户是否有权访问其帐户或执行特定操作
身份验证绕过
1.暴力破解
在没有验证码限制或者一次验证码可以多次使用的地方,
使用已知用户对密码进行暴力破解或者用一个通用密码对用户进行暴力破解。
简单的验证码爆破。
一些工具及脚本:
Burpsuite
htpwdScan 撞库爆破必备 URL: https://github.com/lijiejie/htpwdScan
hydra 源码安装xhydra支持更多的协议去爆破 (可破WEB,其他协议不属于业务安全的范畴

2.session&cookie
会话固定攻击:利用服务器的session不变机制,借他人之手获得认证和授权,冒充他人。
Cookie仿冒:修改cookie中的某个参数可以登录其他用户(Chrome插件: EditThisCookie )

3.弱加密
前端加密,可破解,或者根本就不是加密。
比如如下案例,找回密码,得到一个token:
/resetpwd?token=eyJ1c2VybmFtZSI6InpoYW5nZiJ9
Token实际上就是将username编码了一下,修改username即可修改其他用户的密

密码找回漏洞
密码找回逻辑测试一般流程
1.首先尝试正常密码找回流程,选择不同找回方式,记录所有数据包
2.分析数据包,找到敏感部分
3.分析后台找回机制所采用的验证手段
4.修改数据包验证推测
密码找回漏洞
1.验证码暴力破解
2.验证码直接返回
3.跳过验证步骤
4.利用邮箱,手机号绑定

5.第三方登录绑定其他用户
例如绑定微博账号的时候,先登录微博并且获取code,然后绑定code和UID的请求如下:
thirdPartyType=1&uid=60570181&state=test&code=fb3a6454736e15534486c5a214067943
通过修改uid可以将自己的微博绑定到其他用户账号,然后通过微博登录就可以登录任意用户账号。

6.没有验证码接受手机号是否与username或者session一致
例如发送验证码的请求如下:
username=&mobilePhone=&randcodeAjax=6119
没有验证username是否和mobilePhone一致,通过修改mobilePhone为自己的手机号接受验证码

7.本地验证绕过
客户端在本地进行验证码是否正确的判断,而该判断结果也可以在本地修改,最终导致欺骗客户端,误以为我们已经输入了正确的验证码。
例如将返回包中的0修改为1即可绕过验证。

8.重置密码最后一步uid或者username可控
重置密码最后一步,重置账户通过用户传递的uid或者username控制,
导致修改该UID即可重置其他用户密码。

9.个人中心修改密码逻辑错误
当前密码的校验和修改新密码是单独分开的两个包。所以可以理解为没有校验当前密码。
原因:密码修改过程中没有校验当前密码,只需要通过修改ssouid(可能是用户标识)来更改密码,而不需要提供当前密码

10.利用session重新绑定用户
重置密码最后一步是通过session获取用户名,然后再重置。
而用户名是在重置密码第一步时与session进行绑定,
那么如果重置密码的最后一步程序并没有验证该用户是够走完了验证流程,
那么就可以通过重新绑定session为其他账号从而达到任意密码重置目的

11.去掉验证参数绕过验证
邮件系统取回密码功能设计逻辑错误,存在认证绕过漏洞,
通过抓取数据包可通过修改报文,将找回问题答案参数删除后,直接进行对密码更改。

12.任意输入验证码修改用户密码

用户输入合规性
用户输入合规性原理是确保用户提供的数据符合应用程序或系统的预期规则、约定或标准。
这是确保应用程序功能正常、数据完整性、安全性和可用性的关键方面。

用户输入合规性测试
1.注入测试
2.XSS测试
3.数据极端测试

数据极端情况测试
1、超长字符串。
输入超长字符串可能会导致系统拒绝服务或绕过某些限制。
2、特殊符号。
曾经遇到过一个案例,密码框输入><就可以登录任意用户账号。
3、整数溢出。
利用整数溢出,精度丢失等,可能导致支付漏洞。
互联网行业
在这里插入图片描述
金融
在这里插入图片描述
在这里插入图片描述
电商
在这里插入图片描述
在这里插入图片描述
政务
在这里插入图片描述

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值