验证码绕过、密码找回漏洞

问一个女孩子可以有多懒,直到最后才会一口气交完前七章的作业,平常是能拖就拖,直到要SRC了才急着补靶场。

验证码作用:

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。

可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。

验证码绕过的常见姿势 :

一、前端验证验证码,并没有后端验证。直接抓包然后进行跑数据包,反正有没有验证码的阻碍

二、验证码设置了但是并没有效验,乱输验证码也能够成功的登录(估计老板没给开发工资吧)

三、验证码可以重复使用,比如现在的验证码1111,然后虽然你登录失败后验证码会变,但是你输入1111他却判定你验证码正确(常见)http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2016-0169672

四、.验证码空值绕过,比如,我们现在抓一个包,发现登录参数是user=admin&password=admin&yzm=4123。 yzm验证码参数,但是我们如果去掉yzm的传参我们就可以绕过验证码机制,直接传参user=admin&password=admin,验证码就失效了   http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-0155066

五、验证码干扰过低,轻松使用脚本识别 http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2016-0194576

六:验证码会在HTML页面输出。  http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-0146767

七、验证码可控制,比如他的验证码包含在URL里面,是一个URL传参,我们可以把URL设置定,那么验证码可控制  http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-071289

八、验证码有规则,比如是时间戳的后6位(rand函数进行随机数)

九、有万能验证码,验证码无论是什么,只要输入000000就能直接绕过

十、验证码有的时候会藏在cookie里面,分析一下是不是存在验证码的参数 十一、图片验证码,类型太少,容易识别 http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-0102178 多次登录后才出现验证码绕过:     基于session:http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-0114450     基于ip: http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-080327     基于用户: 爆破用户名,而非爆破密码

 密码找回漏洞

1.验证码发送后前端返回(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-0114577)

2.验证码无次数限制可爆破(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-0155994)

3.验证码可控(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-086716)

4.直接修改密码页面(http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2013-040908)

5.越权漏洞-->自己验证码通过改包然后修改他们密码

http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2015-0102205 http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2013-016896

验证码分两种:

  1. 验证码是一种区分用户是计算机还是人的公共全自动程序(比如登陆的时候要填写的)
  2. 识别身份,比如短信验证码、电话验证码、邮箱验证码。

验证码有哪几种

有中文字符,纯数字,点击字符、数学运算,移动方块等等。

验证码有什么作用

可以防止恶意破解密码、刷票、论坛灌水,有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能

验证码一定可靠吗

不一定可靠,验证码如果在书写代码的时候存在逻辑漏洞,就比较容易绕过。即使没有逻辑漏洞,如果验证码的图片混淆比较简单,可以写脚本自动识别(python有)

验证码的常见安全问题

一.前端验证验证码,并没有后端验证

二.验证码设置了但是并没有效验

三.验证码可以重复使用

四.空值绕过

五.验证码可控制

六.验证码有规则

七.有万能验证码

八.验证码放在cookie参数里

前端验证码如何绕过

直接抓包进行,因为后端没有验证

验证码的规则一般是什么

有很多种,不一定,要看代码怎么写,很多时候使用的rand函数生成随机数

万能验证码一般是什么

一般是000000 或者 888888

验证码空值绕过是怎么回事

去除数据包里的验证码参数,发现绕过了传参机制,你不传这个参数,然后就没有进入验证码校验流程

验证码可控是什么情况

验证码可能存在于url传参里,url设置定,验证码可控

验证码放在cookie参数里要怎么去找

查看cookie参数里有没有相应的值(验证码或相应参数名)

验证码有时效性吗

一般来说会有时效性,常见的是30分钟

密码找回有哪几种方法

1.通过邮箱发送重置链接或数字|字符串验证码

2.通过短信发送验证码

密码找回一般有什么安全问题

1.验证码发送前端返回

2.验证码输入无次数限制

3.验证码可控

4.直接访问修改密码页面发现直接可以改(缺失身份认证)

5.越权(自己手机的验证码,把别人密码改掉了)

6.密码保护问题出存在缺陷

前端返回怎么利用

查看返回的数据包(可以通过浏览器或者抓包工具)

验证码可控有什么危害

可以发送垃圾邮件,钓鱼网站链接,不良网站链接

直接修改密码页面是什么情况

一般是验证失败后还可以继续访问密码修改页面

缺失身份认证是什么情况

缺少相应的用户id和信息验证,可以用自己的手机号绑定他人的账号

越权是什么

通过自己的验证码,改包,去修改别人的密码

越权和缺失身份认证的区别

平行越权需要登录后使用,而缺失身份认证不用

密码保护问题有哪些缺陷

  1. 容易被猜测
  2. 答案在js里出现

如何去猜测别人的密码保护问题的答案

通过蛛丝马迹分析,然后调用可用资源,去社工。

验证码在cookie里会加密吗

会,可能会通过md5之类的进行加密

校验验证码一般有哪些生成规则

可能对用户的用户名,密码,登陆时间之类的进行生成(这个可能性太多了,不过时间戳是比较常见的,以前遇到过,邮箱找回链接,只需要时间戳和用户名就可以修改密码,那样就能尝试爆破,自己先接一个看看规律)

下面就进入靶场来看看具体的操作吧!!!

 很明显的看到usualtoolcms

 去网站上查找usualtoolcms的源码

下载可以看到

 

找到其后台登录地址。cmsadmin/a_login.php 

 然后去靶场,去找到后台

 尝试常用弱口令进入,发现账号和密码不存在

使用Burp来进行抓包分析

在验证码不改变的前提下,更改密码可以进行重发操作,且页面发回都是账户和密码不匹配

那就可以进行爆破了

爆破出admin账户的密码为root

成功登录到其后台

进入后台后发现没有什么可以利用的点

那就对找到的源码进行代码审计

找到了a_templetex.php中的file_put_content()函数。

并且是接受post传参

(1)这里file_put_contents()是写文件

(2)函数里面的$filenames是文件名,$contents是文件内容

(3)上面看到传给的都是POST传参

(4)那么我们只要在检测sqlcheck的get传参x=m条件成立下

(5)在$filenames里面传个文件名,在$contents里面传个一句话木马那我们是不是就可以拿到shell了

首先需要访问a_templetex.php存不存在

 burp抓包,修改为POST传参,添加?x=m,下面写文件名filename,还有文件内容content写入php一句话木马

 l连接成功

猜你喜欢

转载自blog.csdn.net/weixin_46601374/article/details/123240495