问一个女孩子可以有多懒,直到最后才会一口气交完前七章的作业,平常是能拖就拖,直到要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
- 验证码是一种区分用户是计算机还是人的公共全自动程序(比如登陆的时候要填写的)
- 识别身份,比如短信验证码、电话验证码、邮箱验证码。
有中文字符,纯数字,点击字符、数学运算,移动方块等等。
可以防止恶意破解密码、刷票、论坛灌水,有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能
不一定可靠,验证码如果在书写代码的时候存在逻辑漏洞,就比较容易绕过。即使没有逻辑漏洞,如果验证码的图片混淆比较简单,可以写脚本自动识别(python有)
一.前端验证验证码,并没有后端验证
二.验证码设置了但是并没有效验
三.验证码可以重复使用
四.空值绕过
五.验证码可控制
六.验证码有规则
七.有万能验证码
八.验证码放在cookie参数里
直接抓包进行,因为后端没有验证
有很多种,不一定,要看代码怎么写,很多时候使用的rand函数生成随机数
一般是000000 或者 888888
去除数据包里的验证码参数,发现绕过了传参机制,你不传这个参数,然后就没有进入验证码校验流程
验证码可能存在于url传参里,url设置定,验证码可控
查看cookie参数里有没有相应的值(验证码或相应参数名)
一般来说会有时效性,常见的是30分钟
1.通过邮箱发送重置链接或数字|字符串验证码
2.通过短信发送验证码
1.验证码发送前端返回
2.验证码输入无次数限制
3.验证码可控
4.直接访问修改密码页面发现直接可以改(缺失身份认证)
5.越权(自己手机的验证码,把别人密码改掉了)
6.密码保护问题出存在缺陷
查看返回的数据包(可以通过浏览器或者抓包工具)
可以发送垃圾邮件,钓鱼网站链接,不良网站链接
一般是验证失败后还可以继续访问密码修改页面
缺少相应的用户id和信息验证,可以用自己的手机号绑定他人的账号
通过自己的验证码,改包,去修改别人的密码
平行越权需要登录后使用,而缺失身份认证不用
- 容易被猜测
- 答案在js里出现
通过蛛丝马迹分析,然后调用可用资源,去社工。
会,可能会通过md5之类的进行加密
可能对用户的用户名,密码,登陆时间之类的进行生成(这个可能性太多了,不过时间戳是比较常见的,以前遇到过,邮箱找回链接,只需要时间戳和用户名就可以修改密码,那样就能尝试爆破,自己先接一个看看规律)
很明显的看到usualtoolcms
去网站上查找usualtoolcms的源码
下载可以看到
找到其后台登录地址。cmsadmin/a_login.php
然后去靶场,去找到后台
尝试常用弱口令进入,发现账号和密码不存在
使用Burp来进行抓包分析
在验证码不改变的前提下,更改密码可以进行重发操作,且页面发回都是账户和密码不匹配
那就可以进行爆破了
爆破出admin账户的密码为root
成功登录到其后台
进入后台后发现没有什么可以利用的点
那就对找到的源码进行代码审计
找到了a_templetex.php中的file_put_content()函数。
并且是接受post传参
首先需要访问a_templetex.php存不存在
burp抓包,修改为POST传参,添加?x=m,下面写文件名filename,还有文件内容content写入php一句话木马
l连接成功