【web安全】——逻辑漏洞

news2024/11/25 2:46:30

1.逻辑漏洞

1.1. 简介

逻辑漏洞就是指攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性。一般出现在密码修改、越权访问、密码找回、交易支付金额等功能处。 逻辑漏洞的破坏方式并非是向程序添加破坏内容,而是利用逻辑处理不严密或代码问题或固有不足,进行漏洞利用的一个方式。

1.2逻辑漏洞类型

1.2.1登录功能

  • 返回凭证
  • 暴力破解用户密码
  • 验证码登录爆破
  • 验证码复用
  • 验证码登录绕过短信轰炸
  • session覆盖

1.2.2注册功能

  • 任意用户注册
  • 短信轰炸返回凭证
  • 注册覆盖

1.2.3密码找回功能

  • 任意用户重置
  • 短信轰炸
  • 返回凭证

1.2.4会员系统

  • 用户越权访问
  • 订单查看修改
  • 收获地址越权查看修改
  • 资料越权查看修改
  • 换绑手机修改
  • 换绑短信轰炸
  • 水平垂直越权

2.实战

2.1密码爆破

有些网站对用户的登录尝试次数没有做限制,没有账户锁定机制,我们可以进行暴力破解

首先随便输一个账号密码进行抓包 开启代理,打开burpsuite工具,点击login并拦截包

抓包点击右键后发送到intruder模块

1.点击清除把所有变量清除
2.分别双击输入的用户名和密码,点击添加,变为有效载荷
3.选择攻击类型,攻击类型有四种,这里出于实际情况,我们选择第四种集束炸弹的模式

接着分别添加用户名字典和密码字典 开始爆破

因为账号密码都需要爆破,因此有效载荷集为2

添加密码字典 开始暴力破解

根据长度可以得出用户名为admin 密码为 password

(medium)

将难度修改为Medium

通过比较可以看出相比Low级别的代码,Medium级别的代码主要增加了mysql_real_escape_string函数,这个函数会对字符串中的特殊符号(x00,n,r,,’,”,x1a)进行转义,基本上能够抵御sql注入攻击, 同时增加了sleep(2) 破解失败 会停止运行两秒 但是仍然可以通过暴力破解 只不过相较于low级别慢一点

(high)

相较于medium级别 增加了token认证

先了解一下token

基于Token的身份验证的过程如下:

1.用户通过用户名和密码发送请求。

2.服务器端程序验证。

3.服务器端程序返回一个带签名token 给客户端。

4.客户端储存token,并且每次访问API都携带Token到服务器端的。

5.服务端验证token,校验成功则返回请求数据,校验失败则返回错误码。

请求中发送token而不再是发送cookie能够防止CSRF(跨站请求伪造)。即使在客户端使用cookie存储tokencookie也仅仅是一个存储机制而不是用于认证。不将信息存储在Session中,让我们少了对session操作。

token是有时效的,一段时间之后用户需要重新验证。

因为token是随机的 所以破解时候token这一项也需要破解

首先抓包 可以看到有token

将token和password两项设置为变量 (因为已知用户名为admin,为了方便演示,不在破解用户名)攻击模式使用Pitchfork

将密码和token值设置为变量

选择第三种攻击类型——音叉攻击,表示使用两个字典,密码和token的值进行逐行匹配

首先设置密码字典

设置token参数

选择options将线程数设置为1(递归查找,将上一个请求的相应token作为下一个请求的payload的token,所以就不并发。因为token是每次验证完后才会新生成token,所以不能使用多线程进行爆破)

继续下滑找到Grep-Extract

Grep-Extract模块进行相应设置,获取相应的token,截取相应token的前后标识,用于下次截取

回到有效载荷页面
设置第二个参数——token,有效载荷类型改为递归搜索,英文为recursive grep。
在第一个请求的初始有效负载部分把我们复制的token粘贴上去

完成以后,点击开始攻击。

2.2验证码漏洞

2.2.1验证码爆破

与上面爆破用户名,密码方法类似

服务端未对验证时间、次数作出限制,存在爆破的可能性。简单的系统存在可以直接爆破的可能性,但做过一些防护的系统还得进行一些绕过才能进行爆破。burpsuite对纯数字验证码爆破时间估计:对于4位纯数字验证码:从0000~9999的10000种可能用多线程在5分钟内跑完并不是很难。对于6位纯数字验证码:六位数的验证码1000000位,单从爆破时间上来看就比4位数的多100倍。

2.2.2验证码不失效

这里说的是图形验证码使用过一次未立即失效引起的问题 , 验证码使用后依然可以继续使用 。

2.2.3短信验证码可预测

这里的短信验证码可预测,是指的在发送短信验证码的同时,拦截数据包请求,而后进行发包,会看到返回的手机验证码,或在发送请求短信的时候,即将发送至手机里的验证码出现在请求数据

2.3密码重置漏洞

简单来说就是未验证短信验证码与手机的匹配关系(却验证了短信验证码与图片验证码)服务器端应该是只检查是否发送过验证码,但未验证验证码与手机号的匹配关系,导致任意账号重置。

首先,对目标手机号码进行密码重置发送验证消息

接着,对自己手机号码发送验证消息

将目标手机号与自己的验证码结合

更改成功

2.4越权漏洞

如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了 不合理的权限校验规则导致的。

一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。

2.4.1水平越权

以pikachu靶场为例

登录一个用户

在url中将name改为其他用户 越权成功

2.4.2垂直越权

垂直越权就是通过自身低权限账号去执行高权限账号所能执行的操作

其实垂直越权漏洞是需要一定的条件的,需要抓取到高权限用户的数据包,而抓取这个数据包是有一定的困难的,比如可以盲猜数据包,或者通过网站获取源码本地搭建去获取,

先登录超级管理员,去执行只有管理员才可以操作的新增账号的功能,用burp抓包。退出登录。登录普通用户,执行新增账号操作。如果成功,则存在垂直越权漏洞。

先添加用户

进行抓包

退出登录,在repeater中执行。返回登录界面,要求登录。

在burp获取cookie。

然后找到之前添加用户的post请求,发送到repeater。

目前的管理员登录态是退出的,现在我们把这个登录态换成现在登录的普通用户的登录态。以普通用户的身份执行管理员操作。点击执行。返回pikachu,刷新页面。

又出现了一个2122用户,说明存在垂直越权漏洞。

2.5用户名枚举

当你在登录界面随意输入一个用户名和密码时候,提示的不是用户名或密码错误,而是该用户不存在,则该漏洞存在。可以枚举用户名,当出现密码错误时候,证明该用户名存在。

3.支付系统

3.1.简介

支付漏洞在漏洞中一直是处于高风险漏洞,对于企业来说相应的危害是很大的,同样对于用户的风险也很大的,比如当攻击者通过修改,使用他人账号的余额进行购买,那么就属于支付中的越权漏洞了。

3.2.购买流程

选择商品和数量--产生订单--选择邮寄地址及支付方式--订单支付-一完成支付。

3.3.支付漏洞分类

3.3.1.修改支付价格

对于修改支付价格,通常来说购买一件物品需要选中自己所需购买的物品,其次确认相关的信息,最后支付价钱,而在这个过程中,可以在选中时就修改价格,若有相关的验证,则可以向后边退,一步一步测试。

3.3.2.修改支付状态

其实这里的支付状态挺好理解的,把支付未成功修改为支付成功即可,这个也是由于支付的状态未和实际订单的支付状态进行校验而产生的。

3.3.3.修改购买数量

在支付的过程中,数量也同时决定着价格,比如:1个数量商品对应的是100,2个数据就是200,那么当你修改这个值数量值为负数时,那么其金额也会变为负数,最后就会导致支付问题的产生。

3.3.4.替换支付

替换支付简单来说,首先去产生两个订单,但是这两个订单的商品是不一样的,其价格也是不一样的,如果服务端未做好相应的验证,那么在支付过程中去替换数据,最后支付,这时候就可以使用订单支付的价格购买到其他贵的物品。

4.接口逻辑漏洞

4.1.URL重定向

4.1.1.漏洞介绍

URL重定向(URLredirection)漏洞,又称跳转漏洞。指的是网络应用程序接受用户可控的输入作为到外部站点的链接,然后在重定向中使用该链接。可以认为是SSRF一种。

4.1.2.漏洞原理

http参数可能包含URL值,并且可能导致Web应用程序将请求重定向到指定的URL。通过将URL值修改为恶意站点,攻击者可以成功启动网络钓鱼诈骗并窃取用户凭据。由于修改后的链接中的服务器名称与原始站点相同,因此网络钓鱼尝试具有更可信赖的外观。

4.1.3.漏洞危害

1.网络钓鱼:即攻击者将漏洞用比较有名的域名伪装,用户没有注意到以此放心点击。被窃取敏感信息。

2.绕过保护机制;获取权限或假冒身份

3.用户的访问可能会被重定向到不可靠的网页。不可靠网页中可能存在恶意软件并可能攻陷用户电脑。一旦用户电脑被攻陷,用户就暴露在大量各种网络危机中。而且用户和网络服务器的交互也可能被攻陷,导致个人身份,密码等关键敏感信息的泄漏。

4.1.4漏洞利用条件

URL从用户可控制的输入中提取:

该URL未经验证,就被用于网络应用程序的重定向地址。

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

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

相关文章

震动传感器介绍及实战

目录 前言 震动传感器 1.震动传感器配图 2.震动传感器原理图 3.震动传感器使用 1-震动传感器的意义 2-震动传感器的应用场景 3- SW-18010P震动传感器使用方法 震动传感器控制灯 操作 增加延时 使用SPC-ISP生成演示函数 总结 前言 我们上节已经简单了解了LED的使用…

【GC日志和OOM日志分析】JVM GC日志和OOM Dump文件分析

1 缘起 充电、充电、充电。 增加一些必备的知识,帮助后续使用。 2 配置JVM参数 为分析GC日志以及OOM相关信息,配置JVM参数,分为三个部分: (1)堆内存,包括年轻代、最大堆内存; &a…

2024CSP-J复赛易错点

低级错误 不开long long见祖宗写代码要有输入,别没写输入就交写完代码要在本地测试,多想写极端测试数据,或对拍注意考官说文件夹怎么建,别文件夹建错,爆0别忘写freopen或忘给freopen去注释记着把.exe文件删掉考试时不…

海龟绘图画小汽车

1、效果图: 2、完整代码 import turtlet turtle.Turtle() #创建一个新的画布对象t.penup() t.goto(0,80) t.pendown()t.fillcolor("red") t.begin_fill() t.lt(180) t.fd(60) t.lt(45) t.fd(113) t.rt(45) t.fd(80) t.lt(90) t.fd(80) t.…

win系统网络重置

重置网络命令:netsh winsock reset 输入winR 调用运行窗口,回车 输入重置网络命令:netsh winsock reset 注意空格

国庆刷题(day4)

C语言: C:

插画共享系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,插画信息管理,基础数据管理,论坛管理,公告信息管理,轮播图信息管理 微信端账号功能包括:系统首页,插画信…

Elasticsearch:探索 Elastic 向量数据库

作者:来着 Elastic Justin Castilla 向量数据库正迅速成为语义搜索的事实上的数据存储,语义搜索是一种考虑上下文和内容含义的搜索,而不是传统的关键字搜索。Elastic 一直提供执行语义搜索的现代工具,识别和理解查询向量数据库所需…

(java)简单设计一个本地搜索,你会怎么实现

目录 1. 需求分析 2. 系统设计 主要类 3. Java代码实现 4. 进一步扩展 在Java中实现一个简单的本地搜索功能的设计流程通常包括以下几个步骤: 1. 需求分析 输入:用户输入要索引的目录路径和搜索的关键词。处理: 扫描指定目录及其子目录…

HTML+CSS之表格(15个案例+代码+效果图+素材)

目录 1.table标签的border属性 案例:制作一个带边框的表格 1.代码 2.效果 2.table标签的cellspacing属性 案例:制作一个带边距的表格 1.代码 2.效果 3.table标签的cellpadding属性 1.代码 2.效果 4.table标签的width和height属性 案例:指定宽高的表格 1.代码 2.效果 5.table标签…

BUSHOUND的抓包使用详解

BUSHOUND是个过滤软件,确切来说是在windows操作系统它的驱动层USB传输的数据。所以这个数据上可能是与USB的总线上的数据是有一点差异的。 先要选择设备的抓包。所以就是在device这个界面底下,我们首先要选择我们要抓的设备。 尝试下键盘设备 电脑键盘…

COPS论文总结——Lec17

文章目录 一、简介二、ALPS1.可用性。2.低延迟。3.分区容忍。4.高可扩展性。5.对比CAP 三、COPS的一致性1.一致性的分类2.Causal 一致性(1)模型抽象(2)Causal 定义 一、简介 1.论文的标题是‘Don’t Settle for Eventual: Scalab…

CNN中的平移不变性和平移等变性

1. 平移等变性 数学上函数的等变性定义如下: 也就是给定一张图像,平移后卷积的结果与卷积后再平移的结果是相同的 2. 平移不变性 如果某个属性在任何平移下都不会改变,那么它就是平移不变的。考虑上面的图像。 即使像素值发生了位移&#x…

c++内存申请和释放

// // Created by 徐昌真 on 2024/10/5. // #include <iostream> using namespace std; int main() {//在堆区申请一块内存int* ptr new int(1314); //申请了一个int类型的内存 用ptr指针指向它 它的值是1314cout << *ptr << endl;//可以通过指针修改它的值…

【C++差分数组】1589. 所有排列中的最大和|1871

本文涉及知识点 C差分数组 LeetCode1589. 所有排列中的最大和 有一个整数数组 nums &#xff0c;和一个查询数组 requests &#xff0c;其中 requests[i] [starti, endi] 。第 i 个查询求 nums[starti] nums[starti 1] … nums[endi - 1] nums[endi] 的结果 &#xff…

华为OD机试 - 基站维护工程师数 - 动态规划(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

GEE问题:筛选指定区域的Sentinel-1影像缺乏VH等波段

目录 问题简介 原始代码 原始代码 问题解析 修改后的代码 问题简介 亲爱的同事们&#xff0c;我正在尝试使用 SAR 图像 - Sentinel-1 来改进使用机器学习的地上生物量建模。我想处理 Sentinel 图像并将它们作为波段插入以增强模型。通过阅读文档&#xff0c;可用的极化&a…

前端编程艺术(3)---JavaScript

目录 1.JavaScript 1.输出 2.变量和数据类型 3.运算符 4.数组 5.函数 6.面向对象 7.ES6面向对象 2.BOM 1.document对象 3.DOM 4.JSON 1.JavaScript JavaScript是一种脚本编程语言&#xff0c;通常用于为网页增加交互性和动态效果。它是一种高级语言&#xff…

用js和css实现一行一行文字交替显示

用js和css实现&#xff0c;效果是&#xff1a;有多行文字&#xff0c;一行一行的交替显示&#xff0c;每隔几秒显示一行&#xff0c;循环显示。 代码如下&#xff0c;保存为html即可看到效果&#xff1a; <!DOCTYPE html> <html lang"en"> <hea…

心觉:梦想成真的三个核心步骤

Hi&#xff0c;我是心觉&#xff0c;与你一起玩转潜意识、脑波音乐和吸引力法则&#xff0c;轻松掌控自己的人生&#xff01; 挑战每日一省写作190/1000天 梦想成真是每个人的愿望 但是希望你不要把“梦想成真”这四个字当成愿望或许愿&#xff0c;因为它实际上是一个成事的…