漏洞类型
1、实体漏洞
XSS:将传入的参数作为JS程序来执行
SQL注入:将传入的参数作为数据库的SQL语句来执行
CSRF:伪造一个链接页面,客户端请求伪造
变量覆盖,代码执行漏洞:用户传入的参数都会作为程序的某一部分来执行
2、逻辑漏洞
因为代码逻辑出现问题,产生了漏洞
逻辑漏洞产生的原因:
- 程序设计思路出现了问题(开发人员的问题)
- 项目衔接出现了新问题(新人和老员工之间交接的问题)
- 项目经理经验不足,造成程序设计出现问题
验证码绕过漏洞
什么是验证码?
人机交互公共全自动图灵测试,主要作用是实现区分是计算机还是人
验证码绕过漏洞的危害
- 验证码复用、验证码存在爆破、验证码能否被识别
- 用户验证码存在于前端情况和后端情况,如果存在于前端,那么说明该程序是不安全的
- 用户汇总会密码使用验证码,修改res数据包,绕过程序
- 用户重定向:在输入验证码修改用户A的密码的过程中,我们将即将修改的A的数据包抓包,并改为修改B的密码,那么就实现了直接修改B的密码。-----(利用修改用户标识信息实现绕过验证)
- 验证码回显:例如邮箱验证码、手机验证码等等。验证码出现在响应数据包中,可以直接查看验证码
验证码的分类
- 区分是人还是计算机 -----图片验证码
- 识别身份:短信验证码、邮箱验证码、电话验证码
验证码的显示方式
- 数字验证码
- 中文字符验证码
- 点击字符
- 滑动拼图
- 数学计算
验证码的作用
防止恶意程序做爆破密码,反爬虫、论坛灌水、刷票等
验证码绕过的方式
- 识别并执行
Python识别图片验证码,通过程序识别图片显示的验证码,然后将验证码自动输入到文本框,然后执行程序
- 前端验证验证码
禁用JS代码,或者抓包将JS代码更改
- 验证码未启用
程序交付后,验证码功能没有开启
- 验证码复用
第一次登陆页面产生一个验证码,但是验证码不过期,所以即使换一个账号,还是使用相同的验证码,依然能够进行登录
- 验证码空值绕过
1、拖库 撞库 删库
- 验证码干扰度太低(复杂度太低)
1、爆破难度低,容易造成数据泄漏
2、四川航空某处验证码突破导致泄漏员工敏感信息(10w员工信息) | wooyun-2016-0194576| WooYun.org
- 验证码通过HTML输出
- 验证码可控(基于某个参数来判断验证码正确与错误)
- 有规律的验证码
基于时间生成验证码
计算机不能识别年月日小时分钟秒,计算机显示时间的原理,是以计算机元年为原始单位,做累加运算。
计算机元年:1970年1月1日0时0分0秒
- 万能验证码(无论验证码显示什么,只需要固定的数字就能绕过)
admin login , 111111 00000
- 验证码类型少,验证码过期时间存放在cookie中
http协议是无状态无连接的
验证码获取3次之后,必须建个24小时才能再次获取。(绕过方式换成IP地址绕过)
内网环境换IP,家宽(光猫断电,重置)可以获取IP地址。
公网环境(自己搭建IP地址池,买一个地址池)
换账号 (建议制作一个账号本与密码本)