一篇文章教你如何找出找回密码漏洞。(新手推荐)
平心测试者 渗透测试 15357浏览 · 2020-04-24 01:24

简介。
.在测逻辑漏洞的时候,我们经常会测量找回密码处,这时,请容小弟给各位表哥谈及,四种绕过逻辑去修改其他人的密码。

第一种,修改标志位返回标志位进行找回任意用户的密码。
1.在一些网站上我们注册一个账号,然后我们点击找回密码这个功能。
2.然后输入一个真实的验证码进行找回密码。再点击下一步的时候打开拦截包的功能。并点击下一步后把数据包发送到repeater 这个功能上,

3.然后我们看我我们发包后返回的一个显示情况。这时候我们能看到我们发送正确,可以看到返回包的status(状态)的参数,为1,

4.然后我们再修改验证码后再发送一次,这时我们可以看到我们的返回包的status(状态)的参数,为-1,所以我们考虑status是不是一个能不能过的标志位。

5.所以我们随便选择一个输入一个验证码,并点击下一步。然后拦截数据包

6.打开查看返回包的功能,然后放包

7.然后把返回包的 status 参数从 -1 改为 1.然后放包

8.这时候我们看到我们虽然没输入一个正确的验证码,但还是跳转到找回密码页面。

  1. 总结
    漏洞形成原因在于,跳转页面的标志位放在前端,使用户可以轻易的修改。

第二种,修改发送验证码的手机号来修改漏洞。
复现这个漏洞需要两个手机号,一个用来注册用户

1.我们在获取短信

2.这时我们看到我们的短信号码为的后四位为2554,

3.这时候我们只需要将我们的短信号码修改为其他手机号,这时候我们就把验证码发送到其他手机上,从而达到修改任意手机号码的用户密码的效果了。

4.总结
漏洞原因在于后台只验证了验证码,而未对手机号进行验证,从而导致了此漏洞。

第三钟 删除验证码(干货来着)

1.我们登陆莫网站后台,这个是一个莫cms的一个后台,有就是你找到这个网站的漏洞后,你就能找到很多网站的漏洞。

2.然后一般网站的用户名都会有一个管理员用户 ,所以我们可以尝试 admin

3.结果显示不存在

4.这时候就要考验你们对管理员的了解怎么样了。一般这时候我会把网站的名字放进去试试看

5.没想到真的有,有趣

6.这时候我们可以随便输入一个值,然后打开拦截包功能,,然后点击下一步

7.然后我们肯定数据包中有我们输入的答案 love

8.这时候我们只需要把love这个参数删除掉就放包。


9.这时候,神奇的事情发生了。我们居然成功的找到了密码

  1. 总结
    ;漏洞形成的原因是他的数据传输可能类似于 sql = $admin&$password .
    然后当 passwrod为空而admin=用户名称时。他就不会验证passwrod ,而是从数据库中直接把这个用户的账号密码给你找出来

第四种,验证码爆破。

这个爆破只存在于四位验证码爆破才有危害.
1.第一步打开一个商场网站,并在上面注册一个用户 。(然后在注册的时候我们知道验证码为四位)
2。点击找回密码的功能点输入我们的账号并获取验证码

3.然后我们点击一个验证码进行随机爆破。,发送到定时器进行爆破,

4.不一会,就能看到我们香飘飘的验证码了。具体爆破方法请百度,这里不演示。

5.这时候我们找到一个返回的数据大小不同的包即可。

6.总结
形成原因分别为对验证码的输入次数没有经过严格的样子。

15 条评论
某人
表情
可输入 255
平心测试者
2020-06-05 09:20 0 回复

@LzSkyline 总结得很精辟呀,看来是挖洞好几年了


LzSkyline
2020-06-02 07:19 0 回复

第四种,验证码爆破。

"6.总结: 形成原因分别为对验证码的输入次数没有经过严格的样子。"


验证码爆破类漏洞除了根据IP或设备指纹等信息限制输入次数外, 最好还是提高验证码位数, 缩短验证码有效时间, 防止黑产切换代理、随机生成设备指纹绕过次数限制


LzSkyline
2020-06-02 07:17 0 回复

第三钟 删除验证码(干货来着)

"总结: 漏洞形成的原因是他的数据传输可能类似于 sql = $admin&$password .

然后当 passwrod为空而admin=用户名称时。他就不会验证passwrod ,而是从数据库中直接把这个用户的账号密码给你找出来"


我认为漏洞的形成原因多是代码用了存在缺陷的反向验证逻辑判断, 密码参数存在且密码错误时提示错误, 否则认为密码正确, 比如如下代码:

if (!empty($_POST['captcha']) && !$validator->check_word($_POST['captcha']))

{//此处有严重逻辑错误,也就是说我不post验证码就可以不检查验证码了

sys_msg($_LANG['captcha_error'], 1);

}

//登录成功


LzSkyline
2020-06-02 06:22 0 回复

第二种,修改发送验证码的手机号来修改漏洞。

"3.这时候我们只需要将我们的短信号码修改为其他手机号,这时候我们就把验证码发送到其他手机上,从而达到修改任意手机号码的用户密码的效果了。"

这里并不一定, 如果网站在后端判断了手机号和验证码的绑定关系, 就无法完成攻击, 单从数据包是没法判断是否存在漏洞, 一般都是根据修改后的返回结果推断

PS: referer和logo的xbiao网址没码住


LzSkyline
2020-06-02 06:14 0 回复

第一种,修改标志位返回标志位进行找回任意用户的密码。

"总结: 漏洞形成原因在于,跳转页面的标志位放在前端,使用户可以轻易的修改。"

我认为主要原因是后面的重置密码接口后端没有对上一步的状态进行校验, 目前前后端分离的网站跳转页面的标志位都是通过后端接口返回的状态码来判断的, 这个本身被修改并没有实际影响, 应该是下一步的修改密码接口后端校验不严导致的


平心测试者
2020-05-09 16:27 0 回复

有兴趣互相交流技术的可以加我qq 1213936954


平心测试者
2020-05-09 16:26 0 回复

@173****4784 确实,那你还挺早入行的吗


慢就是快
2020-05-02 03:38 0 回复

之前网上找的野站,提交给盒子,还给我500奖金。站点特殊,现在未授权测试风险大,漏洞也不好挖了。


平心测试者
2020-04-30 06:52 0 回复

@corp0ra1 看来是大佬咯 ,加个qq有空讨论一下技术咯


平心测试者
2020-04-30 06:51 0 回复

@ebter 差不多 ,不过我最多玩过一个权重 7的


平心测试者
2020-04-30 06:50 0 回复

@刚刚入门的小白 改也是改自己的密码验证一下拉,我有一次改了admin的密码,上去一看居然是管理员,吓得我马上交补天保命了


corp0ra1
2020-04-25 09:08 0 回复

freebuf 搜索:任意用户密码重置,yangyangwithgnu师傅的姿势挺多的,我当时就是通过师傅一系列文章入的门


corp0ra1
2020-04-25 09:07 1 回复

@刚刚入门的小白 看情况,gov.cn不要尝试,小站可以。之前甲方做测试,改了之后差点被骂惨。如果能注册账号之后在找回就更好了


ebter
2020-04-24 06:51 0 回复

这个是思路 不过多数网站还是做了屏蔽 小站可以玩玩


刚刚入门的小白
2020-04-24 03:05 0 回复

师傅,挖这种洞的时候真把别人密码改了没事吗?


目录