专栏首页渗透云笔记挖洞经验 | 注册、登录、密码修改页面渗透测试经验小结

挖洞经验 | 注册、登录、密码修改页面渗透测试经验小结

目录

  • 失效的图形验证码
  • 手机验证码是否可被爆破
  • 手机验证码批量重放(短信炸弹)
  • 注册页面批量注册
  • 注册页面覆盖注册
  • 网站登录页面绕过
  • 任意用户密码重置

失效的图形验证码

在很多的注册、登录、密码修改等页面都需要用户输入图形验证码,目的是为了防止恶意攻击者进行爆破攻击。

但是,在很多网站,存在图形验证码功能失效的问题,也就是说当第一次输入正确的图形验证码提交后,我不刷新该页面,之后该验证码还有用。

那么,我们如何判断该页面的图形验证码功能是否失效呢?

我们先输入正确的图形验证码和信息后,点击提交。用burpsuite抓包,查看返回的数据。然后我们重放,查看服务器返回的数据。如果第二次重放,服务器返回的是验证码错误的话,那么说明就不存在绕过图形验证码的可能性了。如果返回的数据和第一次登陆成功时相同的数据,那么该验证码就存在绕过了。

修复措施

服务器后端应该对图形验证码设置仅用一次,无论输入正确还是错误,该验证码都失效并且返回新的图形验证码。

手机验证码是否可被爆破

对于大多数网站的注册、登录页面,修改密码页面,往往会有用手机号验证码登录的情况。这时,我们就可以考虑是否可以爆破手机验证码?

网站注册、登录、修改密码页面的逻辑是这样子的。我们用手机号码进行操作,输入手机号,然后点击获取验证码,后端服务器将验证码发给我们的手机号,我们将手机收到的验证码填入,点击注册、登录或者修改密码,后端校验验证码是否正确,正确即可成功。那么,我们会想,这种情况下的验证码是否可被爆破呢?

对于手机验证码被爆破的前提是:该页面处没有图形验证码或者图形验证码失效!如下,该页面注册处没有图形验证码。

倘若后端没有对验证码输入错误次数进行限制的话,也就是说无论你验证码输错几次,后端都不会有任何动作,这种情况下理论是可以爆破的。 一般的手机验证码为6位,当然也有4位的。如果是6位的话,理论情况下就需要爆破100万次,如果是4位就是1万次了。还需要考虑一点的就是后端验证码的时效性,我们进行爆破这么多次,是需要一定时间的。如果该验证码的时效性是一分钟或者低于我们爆破时间的话,也是不能进行爆破的。

如下的截图,就是手机验证码可被爆破!

修复措施

注册登录页面设置图片验证码,并且图片验证码不可被绕过,后端对验证码的时效性和错误次数做限制,超过一定时间或者输入错误次数过多即该验证码失效。

手机验证码批量重放(短信炸弹)

对于网站发送短信验证码这个功能处,我们会想,是否可以利用这个功能进行短信验证码批量重放,来制造短信炸弹呢?

如下截图就是手机验证码发送的接口,我们可以批量重放该数据包,看后端返回的数据

如下,就是网站后台对同一手机号60秒钟内只能发送一条短信,这样就不存在手机验证码批量重放漏洞了!

有些时候,虽然后端会对其进行验证,但是还是可以想办法进行绕过:1. 删除Cookie值 2. 手机号后加空格或者\n

对于手机验证码批量重放的前提是:后端对同一手机号在短时间内的发送短信条数无限制。

注册页面批量注册

对于如下这种网站注册页面,没有手机短信验证码,那么,我们可以考虑,是否可以批量注册呢?

对于批量注册的前提是:该页面处没有图形验证码或者图形验证码失效!如下,该页面注册处没有图形验证码。

如下注册页面虽然需要输入姓名和身份证号,但是并未对姓名和身份证号去做核对,输入任意的姓名和身份证号即可。

我们抓包,先用正确的信息注册,记住注册成功时服务器返回的数据

{"content":"/User","type":1,"data":null}

然后对手机号进行批量遍历,可以发现,可以批量注册成功,存在批量注册漏洞。

注册页面覆盖注册

对于注册页面覆盖注册是指原来用一个手机号已经注册了账号,但是由于漏洞,导致可以再利用该手机号进行注册,并且会将之前注册的记录覆盖!

当我们用已经注册了的账号准备再注册时,发现会提示该手机号码已经存在!

我们抓包,发现后端检测该手机号已经注册了的话,会返回 true。如果检测该手机号没注册的话,会返回false。

我们修改服务器返回的数据包,改为false

可以看到,这个手机号现在可以注册了!

网站登录页面绕过

不同网站判断用户登录成功返回的数据都不一样!

如果网站判断登录成功,网站后端返回设置Cookie的数据这种是没办法绕过的!跳转页面通过Cookie对权限进行了检查,因为Cookie都是后端随机生成的,我们没办法伪造,所以也就绕过不了。

如果网站判断登录成功,网站后端返回的是JSON格式的数据,并且没有设置Cookie 的话,这种是有可能可以绕过的。

不可靠的前端校验

还是会有许多的网站他们没有严格进行身份校验,他们往往是通过依靠帐号密码登陆后发送后回传的JSON数据来判断用户身份是否正确,这就暴露出了很大的漏洞,这种漏洞利用起来就相当的容易,往往只需要一个安全界的神器 BURP 就可以完成身份验证的绕过,在登录的时候输入正确的账户以及随意的密码,将报文拦截下来,然后选择 burp 里面的拦截返回包的功能,捕捉返回的状态码。

如下,网站后端通过返回JSON格式的数据给前端,前端以此来判断用户是否登录成功!

我们查看前端判断登录处的JavaScript代码,发现如下。

于是我们可以伪造服务器返回的数据包进行绕过

最后成功以admin身份登录系统!

任意用户密码重置

几乎所有需要登录的网站都有一个忘记密码然后重置密码的功能,如果网站在密码重置功能处的代码不够严谨,将可能造成任意密码重置的逻辑漏洞。

· 验证码失效,导致攻击者可以通过爆破其他用户手机验证码来实现任意用户密码重置

· 验证码未绑定用户:也就是我们可以利用自己的手机号来进行成功验证手机验证码,然而在提交修改密码处提交其他人的手机号,来实现修改其他人的密码

· 修改接收验证码的手机或邮箱:当我们修改密码时,输入正确的用户名,点击发送验证码,抓包,发现数据包中有该用户名对应的手机或者邮箱,我们将其修改为自己的手机或邮箱来接收验证码。输入我们收到的验证码,即可实现对该用户的密码进行重置。(这里还存在一个信息泄露,即知道用户名就能知道该用户对于的手机或邮箱)

· 跳过验证步骤:网站对修改密码的步骤,没有做校验,导致可以直接输入最终修改密码的链接,直接跳转到该页面,然后输入新密码达到重置密码的目的。首先使用我们自己的账号走一次流程,获取每个步骤的页面链接,然后记录页面3对应的输入新密码的链接,重置他人用户时,获取验证码后,直接输入密码修改页面链接到新密码的界面,输入密码重置成功。

· cookie值的替换:重置密码走到最后一步的时候仅判断唯一的用户标识cookie,并没有判断该cookie有没有通过之前重置密码过程的验证,导致可替换cookie重置他人用户密码。重置自己用户密码到达最后阶段,抓到数据包,并在第一阶段重新获取其他用户cookie,替换cookie到我们抓取的数据包中,发包测试。

本文分享自微信公众号 - 渗透云笔记(shentouyun)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 乌云——任意密码重置总结

    找这个漏洞时候,先把流程过一遍,两遍,观察数据包,测试时候就可以比较哪个不一样,就可以知道修改什么了。

    天钧
  • 实战 | 记两个实战中遇见的逻辑漏洞

    http://***.test.com.cn/*/forgetPassword.html

    天钧
  • 网络安全自学篇(十六)| Python攻防之弱口令、自定义字典生成及网站暴库防护

    免责声明:本公众号发布的文章均转载自互联网或经作者投稿授权的原创,文末已注明出处,其内容和图片版权归原网站或作者本人所有,并不代表安全+的观点,若有无意侵权或转...

    天钧
  • 验证码破解没有训练集?我教你生成一万个!

    对于验证码破解,我在去年写过一篇文章我深度学习0基础,还训练出一个识别验证码模型!,并且把代码放在GitHub上,GitHub地址大家就直接访问前面那篇文章就知...

    Python进击者
  • 如何设计相对安全的图形验证码?

    验证码(CAPTCHA)即“Completely Automated Public Turing test to tell Computers and Huma...

    宜信技术学院
  • 再见了,打码平台:对抗打码平台的验证码思路

    某日,一朋友深夜微信上问我,如果打码平台盯上了你,你该咋整? 政治正确的回答方式是:加强风控策略,多维度判断使用者意图,减低对验证码的依赖。 显然这不是我或者朋...

    FB客服
  • 原来验证码是为了对抗黑客

    年关将至,一场世界级的社会壮举又将上演,那就是咱们的春运,短短的十几天将搬运30亿人次的客流,让国外的记者和看客们都不得不佩服咱们伟大祖国的交通运输能力。为了准...

    程序员互动联盟
  • 干货 | 图形验证码在携程的实践之路

    作者简介 闵杰, 携程信息安全部产品经理。2015年加入携程,主要负责黑产防刷,验证码,反爬以及UGC方面的产品设计,关注在低成本的前提下,解决以上场景的实际问...

    携程技术
  • 【Dev Club 分享】腾讯验证码的十二年

    Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。 本期,我们邀请了 ...

    腾讯Bugly
  • 写给爬虫工程师的验证码识别教程

    但是对于一个爬虫工程师来说,去学习 机器学习相关知识可能成本太高了.(当然有空的话,还是要好好学的)

    爬虫

扫码关注云+社区

领取腾讯云代金券