概述
目录
0x00 前言
0x01 越权
1.越权概念
2.越权分类
3.越权使用
4.越权查找
5.越权防护
0x02 任意注册
0x02 密码重置
0x03 支付漏洞
0x04 信息轰炸
0x 后记
0x00 前言
不安全的对象引用,以及功能级访问控制缺失。--逻辑漏洞
0x01 越权
1.越权概念
存在一个用户A,能够对自己的信息进行增删改查。但在开发人员的疏忽下,对数据增删改查时没有对其所有者进行判断,导致用户A可以篡改其他用户数据。
2.越权分类
水平越权:权限类型不变,权限id改变,导致同级间越权访问。
垂直越权:权限id不变,权限类型改变,常为权限上升。
交叉越权:顾名思义,水平越权和垂直越权同时存在一个漏洞点中。
3.越权使用
在越权漏洞中,水平越权最为常见,因此笔者以水平越权举例。
通常情况下,一个应用程序的功能流程都会存在登录 - 提交请求 - 验证权限 - 数据库查询 - 结果返回,渗透测试人员可以在这些过程中进行越权尝试。
①猜想隐藏URL,如登录后的URL存在 /user.php,修改为扫描不到的管理员管理页面 manage.php,当后台配置有缺失时就会出现越权访问。
②直接修改参数,如修改URL中的id值越权访问;修改file=admin.pdf越权下载文件;修改U密码重置界面中的URL参数(/tips=2),短信验证步骤直接跳转新密码界面(/tips=3)。
4.越权查找
服务器与客户端交互时,客户端的cookie与服务端的session进行身份匹配,成功后进行其他操作。如客户端请求时携带其他参数(注意URL)用以辨识信息的唯一性,则可以进行修改尝试越权。拦截请求包后分析:
①请求中仅用cookie验证,则无法水平越权,但可能存在谁知越权。
②请求中含有cookie和A参数(如employeeId、departmentId,id等)代表唯一用户,但机制中没有对A参数判定是否与cookie相匹配,则存在水平越权和垂直越权都有可能。
③测试时,我们通常使用两个小号辅助判断,一个进行越权修改,一个用来验证越权的成功性。而越权的高发功能点有,订单查询、查看用户信息、收货地址增删改查、密码修改与找回等。
5.越权防护
①cookie与参数唯一绑定,通过校对判定是否返回数据。
②优化cookie的加密算法,注意密钥管理。
③用户密码作为参数写入cookie中,保证账户密码与cookie相匹配。
④敏感操作时,再次验证是否属于当前用户。
0x02 任意注册
1、概念:注册模块中参数校验不严格而导致的漏洞。
2、常见位置:注册口。
3、食用方法
①验证码回传。
②验证码(4位)爆破。
③修改请求回显绕过。
④仅改变手机号,重放数据包,获取相同验证码。
⑤注册步骤未校验,修改url可绕过验证。。
4、防护
①6位验证码。
②验证码限时。
③验证码限次数。
④验证码多次错误,加图片校验。
⑤验证码与手机号绑定,即用即销毁。
⑥后端校验注册信息。
0x02 密码重置
1、概念:无
2、常见位置:忘记密码口,登陆后重置密码口。
3、食用方法:
①验证码回传/明文验证码。
②验证码爆破。
③手机号与验证码二者未绑定,改成他人手机号以重置。
④账户、手机号、验证码三者未绑定,改成他人手机号/账户以重置。
⑤重置步骤未校验,修改url可绕过验证。
⑥前端验证,修改请求回显绕过。
⑦登陆后修改密码仅需新密码,直接越权。
⑧唯一cookie校验,直接替换cookie绕过。
⑨MVC数据对象自动绑定漏洞,即没有身份标识时,可增加参数窃取校验信息。
4、防护
①6位验证码。
②验证码限时。
③验证码限次数。
④验证码多次错误,加图片校验。
⑤验证码与手机号绑定,使用即销毁。
⑥响应包中去掉短信验证码
⑦修改信息时校验旧密码,需提供手机验证码。
⑧服务端二次校验。
⑨验证信息加密。
⑩使用token验证。
0x03 支付漏洞
1、概念:无
2、常见位置:购买、充值界面。
3、食用方法:
①修改支付价格,在订购、订单、付款三步中尝试修改金额。
②修改支付状态,替换为已支付单号,实现已支付效果。
③修改订单数量,计算方式未校验,导致可以输入负数等。
④修改附属值(优惠卷),修改优惠金额/商品价格/优惠折扣来造成低额购买。
⑤越权支付,一次性支付时,若未校验用户信息,可利用他人账户支付。
⑥无限制试用,调用试用接口参数,使待支付产品错判为试用产品。
⑦修改支付接口,支付接口不存在时,处理不妥导致支付成功。
⑧多重替换,在两个订单中,以低价订单参数替换高价,造成低额支付。
⑨重复支付,试用令牌试用商品,若试用完/取消试用时令牌回到账户,可尝试用一个令牌多次提交订单。
4、防护
①后端校验各个参数,确保订单参数与产品参数一致。
②修改相应函数,杜绝输入负数,设定商城产品最低金额等。
③与第三方支付平台合作,校验订单金额与与实际支付金额。
④支付参数进行算法加密。减少数据篡改的可能。
⑤支付流程中校验各个环节,防止跳过某环节。
⑥金额超过阈值,需要人工审核订单。
0x04 信息轰炸
1、分类:①单id多次轰炸。②多id单次轰炸。
2、常见位置:发送信息验证处,如注册口、登录口、等
3、食用方法:
①验证码不刷新,重放数据包不断获取短信。
②删除cookie。
③修改cookie等参数,当其唯一且固定时,修改以伪造新请求。
④手机号分割,如加点/加号/减号/分号/逗号/86/%00等。
⑤无效验证,如任意输入图片码可绕过。
4、防护:
①获取短信请求与图片验证唯一绑定,即用即失效。
②设置获取频控,拒绝持续请求验证码。
③限制ip单位时间请求次数。
④限制手机验证码单日请求次数。
⑤后端二重验证,确保请求唯一。
⑥减少返回包中数据,以减少可控点。
⑦验证模块确保与业务功能关联,杜绝无效验证的产生。
0x 后记
再回头,你依旧在;再看着你,又有新的认识。--涂寐
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46318141/article/details/121000924
最后
以上就是外向蜗牛为你收集整理的常见逻辑漏洞详记0x00 前言0x01 越权0x02 任意注册0x02 密码重置0x03 支付漏洞0x04 信息轰炸0x 后记的全部内容,希望文章能够帮你解决常见逻辑漏洞详记0x00 前言0x01 越权0x02 任意注册0x02 密码重置0x03 支付漏洞0x04 信息轰炸0x 后记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复