逻辑漏洞原理及实战

news2024/11/24 22:36:08

前言

作者简介:不知名白帽,网络安全学习者。

博客主页:不知名白帽_网络安全,CTF,内网渗透-CSDN博客

网络安全交流社区:https://bbs.csdn.net/forums/angluoanquan

目录

逻辑漏洞基础

概述

分类

URL跳转漏洞

概述

危害

漏洞寻找

Bypass

短信轰炸漏洞

概述

Bypass

任意密码修改漏洞

概述

场景

任意用户登录漏洞

概述

场景

越权漏洞

概述

平行越权

垂直越权

支付逻辑漏洞

概述

场景

条件竞争漏洞

概述

场景

实战

大米cms支付逻辑漏洞

熊海CMS越权后台登录


逻辑漏洞基础

概述

逻辑漏洞,是因为程序员在编写程序的时候,跟随着人的思维逻辑产生的不足,与传统漏洞的不同在于,逻辑漏洞是用过合法的方式来达到破坏的,比如密码找回,用户登录验证等功能由于程序设计的不足会产生很多问题,这一类漏洞一般的防护手段或者设备无法阻止,漏洞扫描器也难以发现。

程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现在任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额、身份证认证、实名认证......等。

分类

url跳转漏洞

短信轰炸

任意密码修改漏洞

任意用户登录漏洞

越权漏洞

支付逻辑漏洞

条件竞争漏洞

URL跳转漏洞

概述

URL跳转漏洞也叫开放重定向漏洞,就是可以把用户重定向刀攻击者自己构造的页面去,简单的说就是可以跳转到指定的URL。

服务端未对传入的URL变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转恶意网站。

危害

钓鱼

配合xss漏洞

配合csrf漏洞

配合浏览器漏洞(CVE-2018-8174)

漏洞寻找

1.登陆跳转我认为是最常见的跳转类型,认证完后会跳转,所以在登陆的时候建议多观察url参数。

2.用户分享、收藏内容过后,会跳转

3.跨站点认证、授权后,会跳转

4.站内点击其它网址链接时,会跳转

5.在一些用户交互页面也会出现跳转,如请填写对客服评价,评价成功跳转主页,填写问卷,等等业务,注意观察url。

6.业务完成后跳转这可以归结为一类跳转,比如修改密码,修改完成后跳转登陆页面,绑定银行卡,绑定成功后返回银行卡充值等页面,或者说给定一个链接办理VIP,但是你需要认证身份才能访问这个业务,这个时候通常会给定一个链接,认证之后跳转到刚刚要办理VIP的页面。

Bypass

1.利用问号绕过限制

url=https://www.baidu.com?www.xxxx.me

2.利用@绕过限制

url=https://www.baidu.com@www.xxxx.me

3.利用斜杠反斜杠绕过限制

https://www.landgrey.me/redirect.php?url=http://www.evil.com/www.landgrey.me

4.利用#绕过限制

https://www.baidu.com#www.xxxx.me

5.利用子域名绕过

https://www.baidu.com.xxx.com

6.利用畸形url绕过

https://landgrey.me/redirect.php?url=http://www.evil.com\.landgrey.me

7.利用跳转ip绕过

https:// www.ipaddressguide.com/   ip修改ip

8.利用xip.io绕过

http://www.qq.com.127.0.0.1.xip.io/

短信轰炸漏洞

概述

厂商在对信息发送的次数、时间没有做限制,或者只在前端做了限制,导致可以无限制发送信息,简单的说就是发送短信/邮件的包可以无限制的发送。

登录、注册、找回密码、绑定手机/邮箱、修改账号,一切需要验证的位置都可能存在短信轰炸。

Bypass

1.尝试在mobile参数后面加20%,即空格

2.尝试在mobile后面加字母

3.尝试对参数进行多次叠加

4.利用调用接口绕过短信&邮箱轰炸限制

5.修改cookie值绕过短信&邮箱轰炸限制

6.修改IP绕过短信&邮箱轰炸限制

7.利用大小写绕过邮箱轰炸限制

8.修改返回值绕过短信&邮箱轰炸限制

任意密码修改漏洞

参考:

https://www.freebuf.com/articles/web/176211.html

https://www.cnblogs.com/-qing-/p/10849028.html

概述

厂商在对密码修改的时候,卫队修改密码的凭证做严格的限制,导致可以被绕过进行任意的密码修改。

场景

1.验证码可爆破

       验证码四位,服务端未对验证时间次数进行限制

       验证码六位,但是不过期,并且没有对验证的次数进行限制

       验证码可以发送多次,而且每次都不会过期

2.验证码回传

       重置密码时,凭证为发送到手机上的验证码,但是通过拦截发送验证码请求对应的Response包时,发现验证码在Response包中。

       注意凭证,有时候返回包里面凭证可能在cookie里面或者在其他地方。

3.验证码未绑定用户

       输入手机号和验证码进行重置密码的时候,仅对验证码是否正确进行了判断,未对该验证码是否与手机号匹配做验证。

       任意账号都能够接收到验证码并能够使用A手机的验证码,B也可以拿来使用。

4.本地验证绕过

       客户端在本地进行验证码是否正确的哦按段,而该判断结果也可以在本地修改,最终导致欺骗客户端,误以为我们已经输入了正确的验证码场景:

       验证码返回在前台进行对比

       验证码在js里面直接进行对比

       直接修改返回包

5.跳过验证步骤

       对修改密码的步骤,没有做校验,导致可以输入最终修改密码的网址,直接跳转到该页面,然后输入新密码达到重置密码的目的。

       首选用自己的账号走一次流程,获取每个步骤的页面链接,然后记录输入新密码的对应链接。重置他人用户时,获取验证码后,直接进入输入新密码对应链接刀新密码的页面,输入密码重置成功。

6.token可预测

       使用邮件接收重置密码的链接时,一般都会带有一个token用户判断链接是否被修改过。如果token可预测,那么攻击者可以通过构造链接来重置任意的用户密码

       表现:

              基于时间戳生成的token

              基于递增序号生成的token

              基于关键字段生成的token

              Token有规律

7.同时向多个用户发送凭证

       将发送验证码的包截获,修改字段,添加多个账户,再发包。发现所写的有效字段均发送了凭证。

8.接收端可篡改

       重置密码时,凭证会发送到手机上,通过替换手机后,可以使用自己的手机号接受验证码。

9.万能验证码

       可遇不可求的奇葩场景,某些开发在未上线钱为了方便测试加了888888、000000这样的万能验证码,但是上线后没去删除测试的内容导致被恶意利用。

任意用户登录漏洞

参考:

https://blog.csdn.net/zhangge3663/article/details/104827700

概述

逻辑错误导致可以登陆任意账户。撞库获取用户名(手机号或邮箱),通过验证码登录,若抓包修改接受验证码的手机号/邮箱,然后使用该类验证码能使撞库的用户登录,即产生漏洞。

场景

1.验证码回显

在手机验证码登录的时候,有一个验证码回显,直接用验证码登录即可。

2修改返回包登录

首先在重置或登录的时候抓登录包,然后再修改返回包,把错误的变成正确的,服务器被欺骗,登陆成功。

3.通过遍历id可以登录/修改

       通过修改对应的userid号,利用修改其他的userid。

       首先注册一个账号,访问带有uid的地址,修改uid登录任意用户。

4.sql注入万能密码

       原理:select id from users where username = ‘admin’ or 1=1 #’ and password = “

       利用sql注入语句 admin ‘ or 1=1 #组合语句。

5.系统默认弱口令

       系统在搭建的时候,设置了默认口令,例如123456等这种密码,或者时默认的强口令,qwerasdf1231这种,但是密码是通用的就可以利用这个密码进行登录任意账户。

6.撞库

       不同的系统有可能会用一个相同的数据库,例如4A的统一认证,拿到了一个系统的数据库用户即可通用·,或者旧密码未改动,可以通过社工库查到旧密码,进行撞库。

7.cookie混淆

       在登录的时候是根据cookie中的某一个字段来进行判断登录的角色,这个cookie的字段可以自己任意修改,最常见的就是userid字段。

越权漏洞

概述

越权访问漏洞,又可以分为横向越权访问漏洞与纵向访问漏洞两类。一般是指一个正常用户A可以操作另外一个用B才能做的事。

越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查时对客户端请求的数据过分相信而遗漏了权限的判定。

平行越权

       在发送请求时观察请求参数,尝试修改用户id或者其他参数验证是否能查看不属于自己的数据,进行增删改查,若成功则存在平行越权的漏洞。

垂直越权

       查看请求中是否有身份标识,比如userid,角色id之类的,有的话尝试修改,重新请求更高权限的操作。

支付逻辑漏洞

概述

开发人员往往为了方便,直接在支付的关键步骤数据包中直接传递需要支付的金额。而这种金额后端没有做校验,传递过程中也没有做签名,导致可以随意篡改金额提交。只需要抓包看到有金额的参数修改成任意即可。

场景

1.修改购买数量

       在进行支付订单的时候,可以修改物品的数量来进行操作,可以通过支付一件的价格购买多件,或者改成负数进行增加资金。

2.修改支付价格

       抓包修改价格参数的内容,在支付当中,购买商品一般分为三个步骤:订购、确认信息、付款,在这三个步骤中都有可能存在漏洞,进而可以尝试修改小额度或者修改负。

3.修改支付对应的商品

       通过修改商品对应的id号,可以用低价购买高价格的商品

4.修改支付状态

       没有对支付状态的值跟实际订单支付状态进行校验,导致点击支付时,抓包修改决定支付或未支付的参数为支付状态的值,从而达到成功。

5.修改附属优惠/状态

       修改优惠券金额

       修改积分金额

       无限制试用

       修改优惠价

6.测试数据包未删除

       开发在测试的时候有一些测试数据未删除,导致用户可以购买测试数据,或者领取测试的优惠券

条件竞争漏洞

概述

       竞争条件发生在多个线程同时访问同一个共享代码、变量、文件等没有进行锁操作或者同步操作的场景中,开发者在进行代码开发时常常倾向于代码会以线性的方式执行,而且他们忽视了并行服务器会并发执行多个线程,这就会导致意想不到的结果

场景

1.文件上传

2.领取优惠券

3.抽奖

4.转账

实战

大米cms支付逻辑漏洞

进入首页

 

注册用户

 

网站首页

 

购买手机

 

提交订单

 

BP抓包

发现价格price=5400之前有一个参数qyt=1,改为qyt=-1

 

下单成功

 

熊海CMS越权后台登录

登录后台

http://localhost//iseaCMS_V1/admin/index.php?r=login

 

没有密码,无法登录

代码审计

查看inc文件夹下的checklogin.php文件

 不难发现, 接收cookieuser的内容,如果user字段为空,则跳到登录页面

如果cookie含有user就会欺骗从而登录成功。

使用cookie editor修改cookie

 

重新访问后台页面

http://localhost//iseaCMS_V1/admin/

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/783979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kaggle新赛:Bengali.AI 语音识别大赛赛题解析

赛题名称:Bengali.AI Speech Recognition 赛题链接:https://www.kaggle.com/competitions/bengaliai-speech 赛题背景 竞赛主办方 Bengali.AI 致力于加速孟加拉语(当地称为孟加拉语)的语言技术研究。Bengali.AI 通过社区驱动的…

【HTML5】拖放详解及实现案例

文章目录 效果预览代码实现 效果预览 代码实现 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>一颗不甘坠落的流星</title><style>#div1,#div2 {float: left;width: 100px;height: 27px;margin: 10px;paddin…

力扣 343. 整数拆分

一、题目描述 给定一个正整数 n&#xff0c;将其拆分为 k 个正整数的和&#xff08;k > 2&#xff09;&#xff0c;并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: n 2 输出: 1 解释: 2 1 1, 1 1 1。示例 2: 输入: n 10 输出: 36 解释: 10 …

5.12 Bootstrap 轮播(Carousel)插件

文章目录 Bootstrap 轮播&#xff08;Carousel&#xff09;插件实例用法选项方法事件 Bootstrap 轮播&#xff08;Carousel&#xff09;插件 Bootstrap 轮播&#xff08;Carousel&#xff09;插件是一种灵活的响应式的向站点添加滑块的方式。除此之外&#xff0c;内容也是足够灵…

ubuntu下畅玩Seer(via wine)

第一步&#xff1a;安装wine 部分exe文件的运行需要32位的指令集架构&#xff0c;需要向Ubuntu系统中添加一个新的架构&#xff08;i386&#xff09;&#xff0c;以支持32位的软件包。因为在64位的Ubuntu系统中&#xff0c;默认情况下只能安装和运行64位的软件。 通过添加i386…

spring boot构建Stomp客户端

目录 一、依赖二、客户端配置三、会话处理程序 ClientStompSessionHandler四、启动 一、依赖 依赖只有一个&#xff0c;版本跟随spring boot版本就行。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web…

MySQL数据库操作篇5(索引的原理及用法)

索引是MySQL中的一大利器&#xff0c;这篇文章旨在讲清楚什么是索引&#xff0c;索引的底层实现原理是什么&#xff0c;使用索引能带来哪些好处&#xff0c;以及索引如何使用较好 此文章会用到前面提到过的一些术语&#xff0c;比如元组&#xff0c;一个元组就指表中的一行数据…

华硕天选air(FX517Z)原装Win11系统带ASUS RECOVERY安装还原方法

华硕天选air(FX517Z)原装Win11系统带ASUS RECOVERY安装还原方法 第一步&#xff1a;下载原装系统工厂包文件&#xff08;6个底包&#xff09;分别为EDN.KIT.HDI.OFS.SWP.TLK 文件地址&#xff1a;https://pan.baidu.com/s/1Pq09oDzmFI6hXVdf8Vqjqw?pwd3fs8 提取码:3fs8 第…

用 LangChain 构建基于资料库的问答机器人(三):ReAct

大家好&#xff0c;我是 Jambo。我们已经学习了如何使用 LangChain 的一些基本功能&#xff0c;解下我们就应该要结合这些功能来做一些复杂的东西了。但在这之前&#xff0c;为了让同学们更好的理解 LangChain 在这其中做了什么&#xff0c;我想先介绍一下关于 GPT 使用方面的一…

记录--关于前端的音频可视化-Web Audio

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 背景 最近听音乐的时候&#xff0c;看到各种动效&#xff0c;突然好奇这些音频数据是如何获取并展示出来的&#xff0c;于是花了几天功夫去研究相关的内容&#xff0c;这里只是给大家一些代码实例&…

Vue组件的概念及其创建和使用

一、Vue组件概念&#xff0c;创建和使用 &#x1f680;&#xff08;一&#xff09;以前遇到重复的结构代码&#xff0c;怎么做&#xff1f;复制粘贴&#xff1f;可维护性高吗&#xff1f; &#x1f680;&#xff08;1&#xff09;为什么要使用组件&#xff1f; 组件的好处&a…

编程小白的自学笔记十一(python爬虫入门三Selenium的使用+实例详解)

系列文章目录 编程小白的自学笔记十&#xff08;python爬虫入门二实例代码详解 编程小白的自学笔记九&#xff08;python爬虫入门代码详解&#xff09; 编程小白的自学笔记八&#xff08;python中的多线程&#xff09; 编程小白的自学笔记七&#xff08;python中类的继承…

phpstudy伪静态

html静态网址在文件目录真实存在就是真的html,把动态经过转换伪造成把html就是伪静态&#xff0c;可以用order by 和 union select验证一下 apache的伪静态网址搭建 找到apache的LoadModule rewrite_module modules/mod_rewrite.so把前面的#删除掉&#xff0c;开启伪静态 All…

Unity 实用插件篇 | Tutorial Master 2 游戏引导教程 功能深入学习

前言【Unity 实用插件篇】 | Tutorial Master 2 游戏引导教程 功能深入学习一、Tutorial Master Manager 面板二、Tutorial Master Manager 面板详细介绍2.1 Debug mode 调试模式2.2 Localization 本地化2.3 Pooling Settings 对象池设置2.4 Start Up Setting2.5 Tutorial List…

Python案例实现|租房网站数据表的处理与分析

在综合实战项目中&#xff0c;“北京链家网”租房数据的抓取任务已在 上一篇 完成&#xff0c;得到了数据表bj_lianJia.csv&#xff0c;如图1所示。该数据表包含ID、城区名&#xff08;district&#xff09;、街道名&#xff08;street&#xff09;、小区名&#xff08;communi…

【从删库到跑路】MySQL数据库的索引(二)——索引的使用和选择

&#x1f38a;专栏【MySQL】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【The Right Path】 &#x1f970;欢迎并且感谢大家指出小吉的问题 文章目录 &#x1f354;索引的使用⭐验证索引效率&#x1f388;细节 ⭐最左前缀法则…

Linux系统之安装MySQL8.0版本

Linux系统之安装MySQL8.0版本 一、MySQL介绍1.1 MySQL简介1.2 MySQL特点 二、本次实践介绍2.1 环境规划2.2 本次实践目的 三、卸载mariadb数据库3.1 卸载mariadb数据库3.2 卸载mysql数据库 四、配置yum仓库4.1 下载rpm文件4.2 配置yum仓库4.3 检查yum仓库状态4.4 检查mysql版本…

香橙派Zero2基于wiringPi外设库的实验(超声波测距)

超声波测距原理&#xff0c;原理可以查看下面的文章&#xff0c;这里就不赘述了 [51单片机超声波测距](http://t.csdn.cn/eYbod)在Linux中使用超声波测距会用到的时间相关的API和结构体 包含的头文件以及函数原型和时间结构体timveal原型#include<sys/time.h>int getti…

windows部署安装redis安装教程

1、下载redishttps://github.com/tporadowski/redis/releases 2、下载完然后双击安装 比较简单 略过 3、测试是否安装成功 提示bug Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf …

ffplay播放器剖析(8)----逐帧/音量调节/快进快退/倍数分析

文章目录 1.逐帧播放2. 音量调节3. seek 快进 快退4.倍速 1.逐帧播放 逐帧播放就是按s键触发的,调用step_to_next_frame触发 static void step_to_next_frame(VideoState *is) {/* if the stream is paused unpause it, then step */if (is->paused)stream_toggle_pause(i…