逻辑漏洞
突破功能限制漏洞
前端校验漏洞
无法查询:
删除dis关键字
案例
- 优惠券
一般每张优惠券都是一段随机字符串key标识,一次只允许使用一张,但有些语言支持
数组提交
copponeid=keyA
copponeid[0]=keyA&copponeid[1]=keyB
json提交
{......"copponeid":"keyA",....}
{......"copponeid":["keyA","keyB"],....}
- 限额
每人每天只允许购买10000元的产品,但每个人都已修改自己每天能购买的最大限额数(仅能由大改小)
买10000
将额度改为9999
再买9999
突破限制
用户信息泄露漏洞
泄露信息一般为手机号/姓名/邮箱/身份证号/收获地址/订单/用户名/密码/银行卡等
案例
注册 登录 找回密码,服务器回显差异造成泄露
用户名不存在
用户名或密码错误
通过回显不同,字典遍历,获取系统中可能存在的用户名列表
同理手机号/邮箱等
修复建议:设置验证码防止字典遍历
服务端多余回显
用户登录之后服务器会从数据库读取用户数据,并通过js或json返回给前端,以便于前端一些功能快速响应(同时可能造成不必要的数据回显(密码等))
掩码前后不一致造成信息泄露
A功能点:手机号135xxxxx1010
B功能点:手机号13535356XXXX
越权
干了不属于自己权限范围内的事就叫越权
- 水平越权
- 垂直越权
案例
id越权
- php?id=140012
- 关注业务点:
- 收获地址
- 用户
- 编辑
- 预览(草稿,回收站)
- 报告(采购)
- 订单(抽奖,付款)
- 绕过手法1:删除多余字段
- tooken 删除 / null / md5验证 /多加123456毁掉token
- 绕过手法2:cookie越权
- cookie是否有身份表示字段 / 双音素越权
- 绕过手法3:修改帐号
- 输入正确的旧密码和要更新改的密码后抓包将loginid改为其他帐号(例如帐号改为admin,新密码为123)
- 当前密码改为NULL
- 绕过手法4:禁用js
- 禁用本地js验证即可未授权绕过后台(看有没有危害)
- 绕过手法5:双因子
- uuid / uid都改
- 绕过手法6:修改url路径参数实现垂直越权
- app=user
- app=admin
- 绕过手法7:思路重要
- 确认收获信息,改id看能不能确认别人的账单
- 用户中心 -- 地址管理 --- 常用地址 2. 拦截常用地址查询请求,将手机号改为其他人的手机号
猜测页面
普通用户(只有阅读权限)
read_article
管理员用户
edit_article
遍历漏洞
攻击者归纳总结服务器资源唯一标识的变化规律后,通过一定手段获取大量可产生利用价值资源的一类漏洞
案例
打车平台的附近位置
达成平台允许乘客根据当前位置匹配附近出租车司机信息
GPS伪造技术,遍历全国司机个人信息
base64遍历
MTk5OQ==
MjAwMA==
弱口令漏洞
暴力破解
大字典
高线程遍历
验证码ocr
有点平台规定次数会锁用户:那可以通过爆破导致用户上锁,无法正常使用平台(618限时购买/抢票)
固定密码攻击
固定密码
遍历账户
得到密码为固定密码的所有账户
撞库攻击
社工库(实话实说 我的好多地方密码是一样的)
验证码漏洞
暴力生成
(短信轰炸)
重放
- 绕过
- 垃圾字符
- +86
- +空格
- 双写手机号
- XFF ip伪造
- 暴力破解
- 设置阈值
暴力生成破解
1个验证码只允许破解几次
但可以无限生成
生成一次破解一次
内容生成伪造
xx公司 你正在充值密码,短信验证码是:xxx
xx公司 你正在充值密码,短信验证码是:xxx,因系统升级,您需要将验证码发送到:xxxxx
响应包存在短信验证码
绑定关系失效
先用自己手机号获取验证码
再改为别人手机号注册
统一初始化
对从未发送过短信的手机号短信验证码默认设置为
null
none
0
00000
123456
短信验证码
ocr绕过
任意用户注册/登录/密码充值
越权修改(找回密码要素)
第一步输入邮箱
第二步验证身份
这种就可以看链接里是否有问题,可以改一改,跳步
验证密码key暴力破解
发个邮箱说验证码是啥
暴力破解
验证链接可被预测
重置链接md5揭密
去发送修改请求
用自己构造的重置链接对密码进行重置
通过验证后,修改密码时越权修改
用自己账户通过验证来到修改密码这一步
修改请求包中的用户信息来修改他人用户密码
找回密码邮箱改为自己的
chagepasswd.php?email=xxxx.com
chagepasswd.php?email=自己的.com
chagepasswd.php?email[0]=xxxx.com&email[1]=自己的.com
修改返回包
- 只进行前端验证,验证成功后提交给后台,后台不做验证直接记录
- 注册失败false改为true/success
url跳转
redirect.php?url=http://www.baidu.com
可能造成欺诈行为
常见参数
redirect
redirect_to
redirect_url
url
jump
jump
target
to
link
linkto
domain
绕过
- 单斜线:http://www.xx.com/redirect.php?url=/www.evil.com
- 缺少协议(双斜线):http://www.xx.com/redirect.php?url=//www.evil.com
- 多斜线/ 反斜线 / #号 / ?号 / … / \ / 双写
- 利用@绕过:https://www.xxx.com/redirect.php?url=//www.evil.com@www.evil.com
- url=evil 可能跳转到www.evil.com