0


逻辑漏洞之验证码绕过、密码找回漏洞

一、验证码绕过

验证码: 区分用户是人还是计算机的全自动程序

验证码的作用:

    1、防止恶意破解密码

    2、防止论坛灌水

验证码绕过:

     1、识别法(通过编写脚本实现)

    2、逻辑绕过法(开发写验证码的校验的时候逻辑产生了问题)

验证码绕过常见姿势:

1、前端校验验证码(这个懂得都懂),相当于没有,直接抓包或者禁用JS

2、验证码虽然设置了,但是并没有校验,随便输也能验证成功

3、验证码可重复使用

4、验证码空值绕过

5、验证码有规则,比如是时间戳的后六位

6、万能验证码,000000,一般在设备上面偏多、硬件设备

7、验证码藏在cookie里面

8、多次登陆错误以后,才需要输验证码

一般是基于session

session:存在服务器上面的(相当于户籍管理系统里的数据)

cookie:存在客户端(相当于身份证),绑定session

基于ip

    我们可以利用X - Foworded -for 来进行跑包

基于用户,这个可以爆破用户

我们进入靶场:

进入网站后台,输入账号和密码,我们可以看到,输入admin和123456显示账号或密码错误,而输入testq和123456就会显示账户不存在,这里就可以尝试绕过验证码来进行爆破密码了

我们这里登陆的时候用Burp抓包,将包放到Repeater模块,然后点击放包,显示账户或密码不匹配,我们再把账户改掉,这里又显示账户不存在,并没有显示验证码错误,所以这里就存在验证码重复利用,如果我们回到Proxy模块,将包放掉,我们再到Repeater模块,点击go,这里就会显示验证码错误,所以这个绕过的核心是不能将这个抓到的数据包放掉

** 二、密码找回**

有一类验证码,他并不是区分用户是计算机还是人的公共全自动程序,他是用来证明你的身份的,例如短信验证码、邮箱验证码

1、验证码返回给客户端

当你在点击发送验证码之后抓他的返回包,返回包里就会有验证码的内容

2、业务流程缺陷

一般找回密码分为三个步骤:发验证码 --> 校验页面 --> 修改页面

如果我们在发验证码的时候,直接能去访问修改页面,那么这就是业务流程缺陷

如果传参加密了,他可能是:①JS前端加密,我们就需要看它的代码来分析加密方式,②后端加密,这时候我们就需要去找他加密的数据包,将它截住,然后把我们想要添加的数据加进去,③之前数据包隐藏域的返回,④强行猜解,MD5、Base64、URL等加密方式,看它的1加密为了什么字符,2加密为了什么字符,一个一个猜

3、验证码无时间间隔限制

4、验证码可爆破

5、越权漏洞

通过改包输入自己的手机号然后修改别人的密码

现在进入到我们之前登录上的靶场:

我们在当前页面刷新抓包,将包放到repeater模块,右键选择有request的那个选项,将传参方式改为POST,我们输入?x=m ,filename=66.php&content=<?php eval($_REQUEST[8])?>,然后在网站主页访问66.php?8=phpinfo();我们就会发现我们能访问他的php探针了,现在我们搞到这套源码来分析一下

使用Seay源码审计工具,全局搜索file_put_contents(这个函数,然后找到我们可利用的点

我们可以一个一个看过去,直到找到我们能利用的地方,这里我们看第十个,这里我们看源码就可以知道,我们之前为什么要那么写了,$x=m是必须的条件,只有进入到这个循环,我们才能写马,而后面的filename=66.php&content=<?php eval($_REQUEST[8])?>就是我们写的马子的内容和名称,

标签: 安全 网络安全

本文转载自: https://blog.csdn.net/qq_68233961/article/details/126904248
版权归原作者 安澈521 所有, 如有侵权,请联系我们删除。

“逻辑漏洞之验证码绕过、密码找回漏洞”的评论:

还没有评论