| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Web安全之支付漏洞 -> 正文阅读 |
|
[系统运维]Web安全之支付漏洞 |
一、快捷支付原理 商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转,一种是服务器端一步通知 基于用户访问的浏览器,如果用户在银行页面支付成功后,直接关闭了 页面,并未等待银行跳转到支付结果页面,那么商户网站就收不到支付 结果的通知,导致支付结果难以处理。而且浏览器端数据很容易被篡改 而降低安全性 该方式是支付公司服务器后台直接向用户指定的异步通知URL发送参数 采用POST或GET的方式。商户网站接收异部参数的URL对应的程序中, 要对支付公司返回的支付结果进行签名验证,成功后进行支付逻辑处理 如验证金额、订单信息是否与发起支付时一致,验证正常则对订单进 行状态处理或为用户进行网站内入账等 关于支付系统向商户通知支付解雇为什么使用异步 PMCAFF产品经理社区 - 产品经理人气组织,产品爱好者学习交流社区,专注互联网产品研究 相对于其他支付漏洞来说,支付漏洞应该是喜闻乐见的但是渗透测试要有分寸 二、常见支付漏洞 修改支付的价格 支付三部曲--订购、顶顶那、付款 ? ? 三个步骤当中随便一个步骤进行修改、价格测试,如果前面两部有验证机制,那么你可以在最后一步付款时进行抓包尝试修改金额,如果没有在最后一步做好检验,那么问题就会存在,其修改的金额值你可以长湿小数目或者负数 修改支付状态--未完成 ? ? A订蛋完成——B订单未完成 ? ? 付款是尝试把B订单的单号给订单A 修改订单数量 修改附属值 ? ? 优惠券 优惠券其基本都是优惠,一般用优惠券进行消费一般出现在第二个步骤 当中:确认购买信息,在这个步骤页面当中,你可以选择相关优惠券, 然后直接修改金额大于或等于商品的价格就可以,或者直接修改其为负 值进行尝试,最后进行支付,如果对这点没有加以验证,那么问题就会 产生,直接支付成功 越权支付 ? ? 存在user=id 这种传参尝试修改id,用别人id钱包支付 无限制使用 ? ? 试用品的参数为2,正常购买参数为1, ? ? 购买试用品参数2 三、支付漏洞如何挖掘 如何挖掘 找到关键的数据包 可能一个支付操作有三四个数据包,我们要对数据包进行挑选。 分析数据包 支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠),要 尝试对数据包中的各个参数进行分析。 不按套路出牌 多去想想开发者没有想到的地方 pc端尝试过,wap端也看看,app也试试。 ? 四、防御方法 后端检查每一项值,包括支付状态。 校验价格、数量参数,比如产品数量只能为正整数,并限制购买数量 与第三方支付平台检查,实际支付的金额是否与订单金额一致。 支付参数进行MD5加密、解密、数字签名及验证,这个可以有效的避 免数据修改,重放攻击中的各种问题金额超过阈值,进行人工审核 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:59:10- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |