当前位置:网站首页>验证码业务逻辑漏洞
验证码业务逻辑漏洞
2022-08-04 02:15:00 【MUNG东隅】
简单学习了一下php的gd库,也就是图形处理,主要是验证码相关的。
验证码可以有效防止暴力破解,也可以用来防止恶意灌水、广告贴等,原理就是生成验证码的时候也会生成一个字符串到session中,然后用户根据图片进行输入、提交,再判断是否能和session中的值匹配上,通常验证码图片会加入一些噪点、干扰线等。验证码的机器识别大概分为四个步骤,取出字模、二值化、计算特征、对照样本,可以采用让验证码更“乱”的方式提高安全性,比较高级的是通过神经网络进行识别,但是这样学习成本太高。
另外,如果验证码仅仅为4位纯数字这样,也是非常容易被暴力破解,尝试10000次一定能破解一个验证码,利用爆破工具,设置上几十个线程,破解只需要几分钟,建议采用非纯数字且6位的验证码。
空验证码突破:大多数验证码的生命周期是这样的:用户访问页面,生成code并保存到session中,用户提交验证码,服务端进行对比。试想,如果我们不去访问页面,二十直接提交表单,这个时候服务端是没有产生code的,当我们提交表单的验证码为空,正好和服务端对应,php是弱类型语言,就绕过了验证码。就像下面这个逻辑:
<?php if($_POST["code"]!=$_SESSION["code"]){ unset($_SESSION["code"]); return['status'=>false,'msg'=>'验证失败']; } return['status'=>'ture','msg'=>'验证成功'];
它在验证失败以后把session里的code删掉了,而这个时候我们直接repeat,就可以打这个漏洞。
另外还有一个逻辑漏洞,就是很多网站为了方便用户,在他们第一次登录无需验证码,如果这个“第一次”的判断条件是我们可控的,比如cookie,我们删掉以后就可以绕过。
边栏推荐
- TensoFlow学习记录(二):基础操作
- In the season of going overseas, the localization of Internet tips for going overseas
- Web APIs BOM - operating browser: swiper plug-in
- priority_queue元素为指针时,重载运算符失效
- 持续投入商品研发,叮咚买菜赢在了供应链投入上
- this巩固训练,从两道执行题加深理解闭包与箭头函数中的this
- 云开发校园微社区微信小程序源码/二手交易/兼职交友微信小程序开源源码
- The browser
- C程序编译和预定义详解
- 大佬们,读取mysql300万单表要很长时间,有什么参数可以优惠,或者有什么办法可以快点
猜你喜欢
随机推荐
JS 从零教你手写节流throttle
Instance, 038: the sum of the diagonal matrix
QNX Hypervisor 2.2用户手册]10.1 通用vdev选项
2022年茶艺师(中级)考试试题模拟考试平台操作
lombok注解@RequiredArgsConstructor的使用
工程制图复习题
idea中diagram使用
织梦响应式酒店民宿住宿类网站织梦模板(自适应手机端)
云开发旅游打卡广场微信小程序源码(含视频教程)
各位大佬好,麻烦问一下flink cdc oracle写入doris的时候,发现cpu异常,一下下跑
参加Oracle OCP和MySQL OCP考试的学员怎样在VUE预约考试
Web APIs BOM- 操作浏览器:swiper 插件
Small Turtle Compilation Notes
【原创】启动Win10自带的XPS/OXPS阅读器
[QNX Hypervisor 2.2 User Manual] 10.3 vdev gic
FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
阿里云国际版基于快照与镜像功能迁移云服务器数据
在Activity中获取另一个XML文件的控件
倒计时2天,“文化数字化战略新型基础设施暨文化艺术链生态建设发布会”启幕在即
持续投入商品研发,叮咚买菜赢在了供应链投入上