当前位置: 首页 > news >正文

逻辑越权--登录和支付数据篡改

本文主要内容

登录

        暴力破解、本地加密传输
        Cookie脆弱、Session劫持、密文比对认证

业务

        支付篡改、数量篡改
        订单ID、手机号码、业务用户ID、商品ID


登录点

#登录应用功能点安全问题
检测功能点,检测,危害,修复方案等


        1.登录点暴力破解

观察是属于哪种传输协议,分析出加密方式,然后针对admin账号进行密码暴力破解,使用bp插件,不仅可以加入口令字典,也能使用加密方式对字典数据加密进行爆破


        2.HTTP/HTTPS传输

在使用bp工具抓包的时候,如果是http的抓包发现是密文,说明前端js进行加密的,我们在爆破的时候,需要知道,js加密是怎么样的,https基本上是加密的,这HTTPS的加密形式不知道能不能破解


        3.Cookie脆弱点验证

部分网站,通过代码审计发现存在最最基础的cookie脆弱点,例如login和index两个页面,cookie内容如果存在uer就不进行过滤,此时删除掉原有内容,增加一个uer=1 就直接进入了index页面,还有一种就是针对cookie内容进行修改


        4.Session固定点测试


        5.验证密文比对安全测试


业务

        #数据算改安全问题
        原理,检测,危害,修复等

挖洞技巧:支付漏洞之总结 - SecPulse.COM | 安全脉搏https://www.secpulse.com/archives/67080.html

        #商品购买流程:


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


        #常见算改参数:


商品编号D,购买价格,购买数量,支付方式,订单号,支付状态等

通过bp抓包修改以上参数信息


        #常见修改方法:


替换支付,重复支付,最小额支付,负数支付,溢出支付,优惠券支付等

index.php?s=/wap/pay/wchatQrcodePay 微信支付
index.php?s=/wap/pay/alipay 支付宝支付
index.php?s=http://www.xiaodi8.com/alipay 调用其他的支付接口
$pay_name=$_GET['s'];


知识补充

        每次访问网站的时候,发送的request都一样吗?

每次访问网站时发送的请求并不完全一样,具体取决于访问的页面、操作的类型以及网站的实现方式。以下是几个常见的例子,说明不同场景下请求的不同之处:

  1. 简单的GET请求:访问网站首页

    • 请求行:GET / HTTP/1.1

    • 请求头:

      • Host: www.example.com

      • User-Agent: Mozilla/5.0 ...

      • Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8

      • Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

      • Accept-Encoding: gzip, deflate

      • Connection: keep-alive

      • Cookie: cookie1=value1; cookie2=value2

      • Upgrade-Insecure-Requests: 1

  2. 带有查询参数的GET请求:在网站上搜索

    • 请求行:GET /search?q=query_string HTTP/1.1

    • 请求头:

      • Host: www.example.com

      • User-Agent: Mozilla/5.0 ...

      • Cookie: cookie1=value1; cookie2=value2

      • Upgrade-Insecure-Requests: 1

3 .POST请求:用户注册或登录

  • 请求行:POST /login HTTP/1.1

  • 请求头:

    • Host: www.example.com

    • User-Agent: Mozilla/5.0 ...

    • Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8

    • Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

    • Accept-Encoding: gzip, deflate

    • Connection: keep-alive

    • Cookie: cookie1=value1; cookie2=value2

    • Content-Type: application/x-www-form-urlencoded

    • Content-Length: 43

  • 请求体:

    • username=user123&password=pass123

  1. AJAX请求:页面无刷新更新内容

    • 请求行:GET /api/data HTTP/1.1

    • 请求头:

      • Host: www.example.com

      • User-Agent: Mozilla/5.0 ...

      • Accept: /

      • Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

      • Accept-Encoding: gzip, deflate

      • Connection: keep-alive

      • X-Requested-With: XMLHttpRequest

      • Cookie: cookie1=value1; cookie2=value2

  2. 文件上传请求:上传头像

    • 请求行:POST /upload HTTP/1.1

    • 请求头:

      • Host: www.example.com

      • User-Agent: Mozilla/5.0 ...

      • Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8

      • Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

      • Accept-Encoding: gzip, deflate, br

      • Connection: keep-alive

      • Cookie: cookie1=value1; cookie2=value2

      • Content-Type: multipart/form-data; boundary=---------------------------boundary_string

    • 请求体:

      • 包含文件数据的多部分表单数据

每个请求都包含请求行、请求头和请求体(如果有的话)。不同的操作和不同的网站实现会导致请求内容的不同。请求头中的信息如Cookie、User-Agent、Referer等也会影响请求的唯一性。

        cookie内容由什么决定?

解释cookie内容生成机制

首先,梳理一下 cookie 的基本概念和作用。cookie 是一种存储在客户端的小数据片段,主要用于会话管理、个性化设置和状态维护。它的内容是由服务器端生成并发送给客户端的,但客户端也可以通过一些方式(比如浏览器的开发者工具)查看或修改 cookie 的值。所以,cookie 的内容主要由服务器决定,但客户端也有一定的参与。

  1. cookie 内容的来源和生成方式(服务器端如何设置 cookie)。

  2. cookie 的组成部分(键值对、属性等)。

  3. 客户端对 cookie 的影响(如浏览器的处理、用户操作等)。

  4. cookie 的作用和适用场景(比如会话管理、个性化推荐等)。

Cookie 内容主要由以下几个方面来决定:

服务器端设置

  • 识别用户身份 :当用户登录网站后,服务器会创建一个与该用户相关的会话(Session),并生成一个唯一的会话标识符(Session ID)。服务器会将这个 Session ID 作为 cookie 的值发送给用户的浏览器,以便在后续请求中识别该用户的会话。例如,PHPSESSID=abc123def456,其中 PHPSESSID 是键,abc123def456 是服务器生成的会话标识符。

  • 存储用户偏好设置 :网站可能会根据用户的个性化需求设置 cookie 来保存用户的偏好。比如,用户在电商网站选择了商品展示的排序方式(如按照价格从低到高),网站会将这个偏好设置存储在 cookie 中,如 sort_preference=price_low_to_high,当用户下次访问时,网站就能根据该 cookie 提供个性化的商品展示。

  • 记录用户行为历史 :为了提供更好的服务或进行数据分析,服务器可能会设置 cookie 来记录用户的行为历史。例如,记录用户最近浏览过的商品或页面,如 recent_items=[item1,item2,item3],方便为用户推荐相关内容。

客户端与服务器端的交互

  • 会话管理 :在用户与网站进行交互的过程中,每次请求和响应都会涉及到 cookie 的发送和接收。浏览器会根据服务器设置的 cookie,自动将其包含在后续对该网站的请求中,直到 cookie 过期或被删除。例如,用户在网站上进行购物操作时,服务器通过 cookie 识别用户的会话,将商品添加到该用户的购物车中,购物车信息可能存储在服务器端,而 cookie 中的 Session ID 用于关联用户和购物车数据。

  • 跨页面请求 :当用户在网站的不同页面之间跳转时,浏览器会将已有的 cookie 发送到服务器,使得服务器能够持续跟踪用户的会话状态和相关信息。比如,用户从网站首页进入商品详情页,再进入购物车页面,整个过程中服务器都通过 cookie 来识别用户的身份和会话,确保用户能够顺利地进行购物操作。

代码示例

以下是一些常见的服务器端设置 cookie 的代码示例:

  • PHP

<?php
// 设置一个简单的 cookie
setcookie("username", "john_doe", time() + (86400 * 30), "/"); // 86400 = 1 day
// 设置一个带有属性的 cookie
setcookie("preferences", "theme=dark&language=en", time() + (86400 * 30), "/", "example.com", true, true);
?>
  • JavaScript

// 设置一个简单的 cookie
document.cookie = "username=john_doe; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/";
// 设置一个带有属性的 cookie
document.cookie = "preferences=theme=dark&language=en; expires=Thu, 18 Dec 2023 12:00:00 UTC; path=/; domain=example.com; secure; samesite=Strict";
  • Python (Flask)

from flask import Flask, make_responseapp = Flask(__name__)@app.route('/set-cookie')
def set_cookie():resp = make_response("Cookie set")resp.set_cookie('username', 'john_doe', max_age=30*24*60*60)resp.set_cookie('preferences', 'theme=dark&language=en', max_age=30*24*60*60, domain='example.com', secure=True, samesite='Strict')return resp

这些代码示例展示了如何在不同的服务器端语言中设置 cookie,包括设置 cookie 的键值对、过期时间、路径、域名、安全属性等。通过这些设置,服务器能够决定 cookie 的内容和相关属性,以满足网站的不同需求。

相关文章:

  • DeepSeek智能时空数据分析(七):4326和3857两种坐标系有什么区别?各自用途是什么?
  • 【Python面向对象编程】类与对象的深度探索指南
  • USB学习【2】通讯的基础-反向不归零编码
  • Linux 更改内存交换 swap 为 zram 压缩,减小磁盘写入
  • OrcaFex11.5
  • 多语言笔记系列:Polyglot Notebooks 中使用扩展库
  • Unity 游戏数量单位换算(K/M/B/T)
  • 雅思阅读--易错词汇60个
  • 38.前端代码拆分
  • 软考-软件设计师中级备考 13、刷题 数据结构
  • aws平台windows虚拟机扩容
  • 从入门到登峰-嵌入式Tracker定位算法全景之旅 Part 8 |产品化与运维:批量标定、误差监控、OTA 升级与安全防护
  • C语言编程--递归程序--求数组的最大元素值
  • Java后端开发day42--IO流(二)--字符集字符流
  • 2025年渗透测试面试题总结-某战队红队实习面经(附回答)(题目+回答)
  • Nmap 工具的详细使用教程
  • 《Python星球日记》第34天:Web 安全基础
  • 前端流行框架Vue3教程:13. 组件传递数据_Props
  • 今年我国已发生三级以上地震318次
  • 在 Win11 下安装 Wireshark 的详细步骤
  • 织梦网站首页栏目修改/seo需要会什么
  • 教育网站建设的目的/如何加入广告联盟赚钱
  • 自己做的网站会被黑吗/重庆seo整站优化
  • 需求网站建设/网上宣传广告怎么做
  • 台州网站建设系统/网站标题seo外包优化
  • 网站如何做好优化/网络营销与网站推广的区别