2020/4/22手工挖洞_用户枚举+任意用户密码重置

用户枚举+任意用户密码重置

0x00  前言

看了很多关于挖洞的文章,也复现了些已有的漏洞和做了一些CTF赛题。

想找些网站练练手。忽然间就想到了我们学校实验室的企业网站。

0x01  测试

首先,打开网站找到登录界面。找到注册入口。

输入我的手机号,下面提示,发现该账号已经被注册了。(这里便引发了我的一个思考:因为手机号都是11位的,所以可以枚举所有用户。)

然后我尝试获取验证码,发现在账号被注册的情况下是无法获取验证码的。通过修改html标签,将获取验证码改为可点击。不一会手机便收到了验证码消息。

这里我尝试了多次短信重发,发现服务端对账户短信重发时间做了限制。(说明不可以做短信轰炸机)

现在测试一下密码重置功能。

发现密码可以通过短信重置(测试这里是否可以做短信轰炸机)。

密码重置联想到是否可以引发任意用户密码重置呢?

密码重置的POST请求参数为opcode 加密后的验证码,newPassword新密码,account手机号。

newPassword和md5加密后的我输入的密码值一样。也就是说newPassword是md5加密的。

在md5上加密一个新的密码,将newPassword的字段替换为加密后的字段。发送到服务器。

服务器返回了修改成功的json数据格式。

我使用修改的密码登录。发现第二次发送的包成功修改了第一次的密码。(这说明opcode并没有被摧毁)。

然而这只能做到单个用户的密码修改。

现在尝试替换掉account的账号。

发送POST请求。返回失败。

这样貌似就结束了???

0x02  峰回路转

按照流程我又走了一遍。发现事情并不那么简单。

在第二次中,我先改了account。发送POST数据包,居然修改成功了。??????

什么鬼?当时就懵逼了。

我又再发送了一次。返回又失败了。???

what???玩我呢。

老老实实流程又走了一遍。发现这个opcode是有时限的。

这样这个用户枚举+任意用户密码重置的漏洞就出来了。

0x03  总结

第一次挖到漏洞的那种兴奋劲儿可以说是很爽很爽,忘了写个payload。哈哈。

这次是在账户的登录注册上下了功夫。

特别注意的一点就是验证码可能具有时效性。在测试的时候要特别注意。

关于漏洞的处理。查阅了很多。

(1)漏洞盒子提交src。公益的没钱。

(2)提交给对应公司或对应服务部门。(前提:没做什么太大的破坏。谨慎。可以参考挖世纪佳缘的白帽子被抓。)(有钱没钱看对应公司,不要要挟。)

(3)通用性漏洞提交cnvd。(通用性:cms,学校,政府用的模板。提供10个对应漏洞的网站,可以得到一个原创性漏洞证明)

猜你喜欢

转载自www.cnblogs.com/TNTBomb/p/12751218.html