逻辑漏洞安全

news2025/7/19 2:27:25
img

逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。 在实际开发中,因为开发者水平不一没有安全意识,而且业务发展迅速内部测试没有及时到位,所以常常会出现类似的漏洞。

由于开发者/设计者在开发过程中,由于代码逻辑不严或者业务逻辑不严

逻辑漏洞是一类漏洞的总称

本文章介绍:

burpsuite的authz工具,用来做水平垂直漏洞的测试界面

熊海CMS,Cookie脆弱,修改订单价格,商品数量,订单编号(只写了这个,其他两个简单不再列举)

涉及 phpyun 平台(php回显、Responce状态值)

逍遥模拟器-福利期贷(状态码修改)

越权原理

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

原理:前端安全造成:界面 (验证写在前端):判断用户等级后,代码界面部分进行可选显示pikachu

​ 后端安全造成:数据库:

后端造成的漏洞
user表(管理员与普通用户同一个表)
	id,username,password,usertype
	1,admin,123456,1
	2,xuan,22222,2
登录用户admin,xuan,代码如何验证这个级别
如果在访问网站数据包中有传输用户的编号,用户组编号或者里类型编号,那么尝试对这个值进行修改,就是测试越权漏洞的基本。

因此,在在权限管理中应该遵守:
1.使用最小权限原则对用户进行赋权;
2.使用合理(严格)的权限校验规则;
3.使用后台登录态作为条件进行权限判断,别动不动就瞎用前端传进来的条件;

越权分为 水平越权,垂直越权,未授权访问

img

水平越权访问

同级别用户:用户A 用户B 用户C 用户D

通过更换某个ID之类的身份标识(Cookie),从而使A账号获取(修改,删除)B账号的信息

垂直越权访问

普通用户 超级管理员(跨级别操作)

使用低权限身份的账号,发送高权限账号才能有的请求,获得更高权限

前提条件:获取的添加用户的数据包

怎么来的数据包:

  1. 普通用户前端有操作界面可以抓取数据包
  2. 通过网站源码本地搭建自己去模拟抓取
  3. 盲猜

未授权访问

通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作

越权

水平垂直

pikachu靶场

前期信息收集可以得到其他用户用户名,登录了kobe的用户,修改数据包,获得其他用户的消息

[http://192.168.118.140/pikachu/vul/overpermission/op1/op1_mem.php?username=kobe&submit=%E7%82%B9%E5%87%BB%E6%9F%A5%E7%9C%8B%E4%B8%AA%E4%BA%BA%E4%BF%A1%E6%81%AF](http://192.168.118.140/pikachu/vul/overpermission/op1/op1_mem.php?username=kobe&submit=点击查看个人信息)

使用burp修改数据包,把kobe修改为lucy,放出数据包

获取到了lucy的信息,这就是水平越权漏洞

垂直越权

登录admin用户,可以进行增加和删除用户的操作,我们点击增加用户,在里面填写数据,抓取数据包,这个是admin用户添加用户数据包,在burpsuite中点击发送到response

POST /pikachu/vul/overpermission/op2/op2_admin_edit.php HTTP/1.1
Host: 192.168.118.140
Content-Length: 84
Cache-Control: max-age=0
Origin: http://192.168.118.140
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20120101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.118.140/pikachu/vul/overpermission/op2/op2_admin_edit.php
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: BEEFHOOK=ScVceLIkTnsEEuo7J9aroFWRTuiy6ym6cvQQOccmqtFsSdOQHiaIaqfzMunmJNYXYKJIgB73rvznkkth; safedog-flow-item=; PHPSESSID=6urmm0ts2j6921cvg8g6kd5ek5
x-forwarded-for: 8.8.8.8
x-originating-ip: 8.8.8.8
x-remote-ip: 8.8.8.8
x-remote-addr: 8.8.8.8
Connection: keep-alive

username=xuan&password=xuan&sex=&phonenum=&email=&address=&submit=%E5%88%9B%E5%BB%BA

放数据包,登录admin用户,如果不小心添加了这个用户我们进行删除,登录普通用户 pikachu,发现只有查看用户的权限,我们(burpsuite的response)直接发送admin添加用户的数据包

发送成功!添加用户成功了?

pikachu这个是前端安全造成的漏洞

if(mysqli_num_rows($result)==1){
            $data=mysqli_fetch_assoc($result);
            if($data['level']==1){//如果级别是1,进入admin.php
                $_SESSION['op2']['username']=$username;
                $_SESSION['op2']['password']=sha1(md5($password));
                $_SESSION['op2']['level']=1;
                header("location:op2_admin.php");
            }
            if($data['level']==2){//如果级别是2,进入user.php
                $_SESSION['op2']['username']=$username;
                $_SESSION['op2']['password']=sha1(md5($password));
                $_SESSION['op2']['level']=2;
                header("location:op2_user.php");
            }

        }else{
            //查询不到,登录失败
            $html.="<p>登录失败,请重新登录</p>";

        }

burpsuite插件Authz

image.png

登录

zblog博客 密码爆破

先进行HTTP/HTTPS协议的密文抓取

明文进行明文爆破,密文进行密文爆破

密码进行目录md5的32位小写加密,我们进行爆破,单纯的密码字典报不出来,我们使用Payload processing添加hash,然后进行md5加密

我这个博客后台登录搭建时候有验证码,可能每次都要刷新,没有爆破出来,但思路记住

image.png

熊海cms Cookie脆弱

参考 其他文章在漏洞复现/CMS/熊猫cms

接下来我们来进行实践,访问http://192.168.118.140/xhcms/admin/?r=login,进行抓包,修改Cookie为任意值,获得数据包

GET /xhcms/admin/?r=index HTTP/1.1
Host: 192.168.118.140
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20120101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.118.140/xhcms/admin/?r=login
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: user=é¹
13213123
x-forwarded-for: 8.8.8.8
x-originating-ip: 8.8.8.8
x-remote-ip: 8.8.8.8
x-remote-addr: 8.8.8.8
Connection: keep-alive

放包直接进入后台

image.png

业务

商品购物流程
选择商品和数量-选择支付以及配送方式-生成订单编号-订单支付选择-完成支付

常见篡改参数:(niushop)
商品编号ID,购买价格,购买数量,支付方式,订单号,支付状态

常见修改方式:
替换支付,重复支付,最新额支付,负数支付,溢出支付,优惠卷支付

修改订单编号(只列举一个例子)

#大米测试产品,价格6000
GET /dami/index.php?m=Member&a=gobuy&iscart=0&id=127&name=%E5%A4%A7%E7%B1%B3%E6%B5%8B%E8%AF%95%E4%BA%A7%E5%93%81&qty=1&price=6000&gtype=%E7%81%B0%E8%89%B2&pic=/dami/Public/Uploads/thumb/thumb_1393218295.jpg

#找之前我们抓取的数据包,大米产品,数量为2的数据包,价格为5400
GET /dami/index.php?m=Member&a=gobuy&iscart=0&id=70&name=%E5%A4%A7%E7%B1%B3%E6%89%8B%E6%9C%BACMS&qty=2&price=5400&gtype=%E7%81%B0%E8%89%B2&pic=/dami/Public/Uploads/thumb/thumb_1393218295.jpg HTTP/1.

我们观察会发现。商品ID不一致,name不一致,price价格不一致,qty不一致,gtype不太重要,pic图片地址,在不考虑价格和数量情况下,我们修改它的id和name

预估效果:使用大米产品的价格5400去买另一件商品大米测试产品

重新抓取大米产品的数据包,地址如上,id和name替换为测试产品的id和name,返回数据包

image.png

image.png

修改支付方式,niushop平台

修改支付到第三方接口

假设 p a y n a m e = pay_name= payname=_GET[‘s’];

index.php?s=/wap/pay/wchatQrodePay 微信

index.php?s=/wap/pay/alpay 支付宝

index.php?s=http://xuan.com/alpay 其他平台

找回

客户端回显,Responce状态值,验证码爆破,找回流程,接口调用

短信轰炸,来电轰炸

搭建一个phpyun系统,需要phpyun3.2

image.png

在左侧注册一个自己的号,使用自己的手机号,这个3.1版本没有绑定手机号界面,其他下载链接没有找到

修复方案

前后端同时对用户输入信息进行校验,双重验证机制

调用功能前验证用户是否有权限调用相关问题

执行关键操作前必须检验用户身份,验证用户是否具备操作数据的权限

直接对象引用的加密资源ID,防止攻击者枚举ID,敏感数据特殊处理化

永远不要相信来自用户的输入,对于可控参数进行严格的检查和过滤

涉及资源

BurpSuite插件HaE与Authz用法(傻瓜式 详细)

ztosec/secscan-authcheck 安装部署教程

熊海CMS 网站综合管理系统 v1.0 源码下载-脚本之家

挖掘技巧:支付漏洞之总结

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

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

相关文章

Github 热点项目 rowboat 一句话生成多AI智能体!5分钟搭建企业级智能工作流系统

今日高星项目推荐&#xff1a;rowboat凭借1705总星数成为智能协作工具黑马&#xff01;亮点速递&#xff1a;①自然语言秒变AI流水线——只需告诉它“帮外卖公司处理配送异常”&#xff0c;立刻生成多角色协作方案&#xff1b;②企业工具库即插即用&#xff0c;Python包HTTP接口…

(26)VTK C++开发示例 ---将点坐标写入PLY文件

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 本示例演示了将球体数据写入ply文件&#xff0c;并从ply文件读取显示&#xff1b; PLY 文件&#xff08;Polygon Fil…

2025蓝桥省赛c++B组第二场题解

前言 这场的题目非常的简单啊&#xff0c;至于为什么有第二场&#xff0c;因为当时河北正在刮大风被迫停止了QwQ&#xff0c;个人感觉是历年来最简单的一场&#xff0c;如果有什么不足之处&#xff0c;还望补充。 试题 A: 密密摆放 【问题描述】 小蓝有一个大箱子&#xff0…

vue3 vite打包后动态修改打包后的请求路径,无需打多个包给后端

整体思路和需求 部署多个服务器环境的时候&#xff0c;需要多次打包很麻烦&#xff0c;所以需要打包之后动态的修改 1.创建一个webconfig文件夹 2.在自己封装的接口文件中 判断是否在生产环境&#xff0c;然后将数据保存到vuex 中 代码&#xff1a; // 创建axios服务的函数 …

Nacos-SpringBoot 配置无法自动刷新问题排查

背景 Nacos SpringBoot版本中&#xff0c;提供了NacosValue注解&#xff0c;支持控制台修改值时&#xff0c;自动刷新&#xff0c;但是今天遇见了无法自动刷新的问题。 环境 SpringBoot 2.2.x nacos-client&#xff1a;2.1.0 nacos-config-spring-boot-starter&#xff1a;0…

【RabbitMQ消息队列】详解(一)

初识RabbitMQ RabbitMQ 是一个开源的消息代理软件&#xff0c;也被称为消息队列中间件&#xff0c;它遵循 AMQP&#xff08;高级消息队列协议&#xff09;&#xff0c;并且支持多种其他消息协议。 核心概念 生产者&#xff08;Producer&#xff09;&#xff1a;创建消息并将其…

Jenkins Pipeline 构建 CI/CD 流程

文章目录 jenkins 安装jenkins 配置jenkins 快速上手在 jenkins 中创建一个新的 Pipeline 作业配置Pipeline运行 Pipeline 作业 Pipeline概述Declarative PipelineScripted Pipeline jenkins 安装 安装环境&#xff1a; Linux CentOS 10&#xff1a;Linux CentOS9安装配置Jav…

AJAX 介绍

一、什么是AJAX ? AJAX 是 异步的 JavaScript 和 XML&#xff08;Asynchronous JavaScript And XML&#xff09; 的缩写&#xff0c;是一种实现浏览器与服务器进行数据通信的技术。其核心是通过 XMLHttpRequest 对象在不重新刷新页面的前提下&#xff0c;与服务器交换数据并更…

promis(resolve,reject)入门级别

JavaScript Promise 的定义 Promise 是一种用于处理异步操作的对象&#xff0c;表示一个可能已经完成或者尚未完成的操作的结果。它的核心作用在于简化复杂的回调嵌套问题&#xff08;即所谓的“回调地狱”&#xff09;&#xff0c;使异步代码更加清晰易读。 Promise 的状态 …

w~嵌入式C语言~合集6

我自己的原文哦~ https://blog.51cto.com/whaosoft/13870384 一、开源MCU简易数字示波器项目 这是一款采用STC8A8K MCU制造的简单示波器&#xff0c;只有零星组件&#xff0c;易于成型。这些功能可以涵盖简单的测量&#xff1a; 该作品主要的规格如下&#xff1a; 单片机…

学习海康VisionMaster之路径提取

一&#xff1a;进一步学习了 今天学习下VisionMaster中的路径提取&#xff1a;可在绘制的路径上等间隔取点或查找边缘点 二&#xff1a;开始学习 1&#xff1a;什么是路径提取&#xff1f; 相当于事先指定一段路径&#xff0c;然后在对应的路径上查找边缘&#xff0c;这个也是…

第35课 常用快捷操作——用“鼠标左键”拖动图元

概述 拖动某个图元&#xff0c;是设计过程中常需要用到的操作&#xff0c;我们可以在原理图中拖动某个元器件符号&#xff0c;也可以在PCB图中拖动某个焊盘。 和常用的软件类似&#xff0c;用按住鼠标左键的方式来完成拖动操作。 用鼠标左键拖动图元 在想要拖动的图元上&…

二、Web服务常用的I/O操作

一、单个或者批量上传文件 前端&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>文件…

「Mac畅玩AIGC与多模态04」开发篇01 - 创建第一个 LLM 对话应用

一、概述 本篇介绍如何在 macOS 环境下&#xff0c;基于已部署完成的 Dify 平台和本地 LLM 模型&#xff08;如 DeepSeek&#xff09;&#xff0c;创建并测试第一个基础对话应用&#xff0c;实现快速验证推理服务与平台交互功能。 二、应用创建流程 1. 通过首页创建应用 打…

深度探究获取淘宝商品数据的途径|API接口|批量自动化采集商品数据

在电商行业竞争日益激烈的今天&#xff0c;淘宝商品数据如同蕴藏巨大价值的宝藏&#xff0c;无论是商家进行竞品分析、优化商品策略&#xff0c;还是数据分析师挖掘市场趋势&#xff0c;都离不开对这些数据的获取与分析。本文将深入探讨获取淘宝商品数据的多种途径&#xff0c;…

马哥教育Linux云计算运维课程

课程大小&#xff1a;19.1G 课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/90640128 更多资源下载&#xff1a;关注我 你是否找了很多资料看了很多视频聊了很多群友&#xff0c;却发现自己技术仍然原地踏步&#xff1f;本教程联合BAT一线导师倾囊相授…

FPGA与边缘AI:计算革命的前沿力量

在数字化转型浪潮中&#xff0c;边缘计算和人工智能正引领着技术革命。而FPGA&#xff08;现场可编程门阵列&#xff09;作为一种独特的硬件架构&#xff0c;正逐渐成为边缘AI领域的关键推动力。本文将探讨FPGA与边缘AI的结合如何重塑我们的数字世界&#xff0c;以及这一技术融…

Kafka 架构设计和组件介绍

什么是Apache Kafka&#xff1f; Apache Kafka 是一个强大的开源分布式事件流平台。它最初由 LinkedIn 开发&#xff0c;最初是一个消息队列&#xff0c;后来发展成为处理各种场景数据流的工具。 Kafka 的分布式系统架构支持水平扩展&#xff0c;使消费者能够按照自己的节奏检…

【Node.js 】在Windows 下搭建适配 DPlayer 的轻量(简陋)级弹幕后端服务

一、引言 DPlayer官网&#xff1a;DPlayer 官方弹幕后端服务&#xff1a;DPlayer-node MoePlayer/DPlayer-node&#xff1a;使用 Docker for DPlayer Node.js 后端&#xff08;https://github.com/DIYgod/DPlayer&#xff09; 本来想直接使用官网提供的DPlayer-node直接搭建…

OpenSSH配置连接远程服务器MS ODBC驱动与Navicat数据库管理

OpenSSH配置连接远程服务器MS ODBC驱动与Navicat数据库管理 目录 OpenSSH配置连接远程服务器MS ODBC驱动与Navicat数据库管理 一、MS ODBC驱动 1.1、安装到Windows后的表现形式 1.2、版本的互斥性 1.3、安装程序 1.4、配置后才可用 二、Navicat数据库管理工具 2.1、安…