【小迪安全2023】第50天:WEB攻防-通用漏洞&购买支付逻辑&数据篡改&请求重放&接口替换

本文介绍了博主hacker-routing在渗透领域和应急响应中的技术专长,探讨了支付逻辑中的数据篡改点,如价格、数量和订单号修改,以及优惠券的重放使用。同时提到了代码审计在业务支付逻辑中的重要性,强调了安全修复措施。

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

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

大纲

知识点:

详细点:

数据算改-价格&数量&产品

修改方式-订单号&数量&优患券

某实例演示站交易支付逻辑安全

代码审计-业务支付逻辑&安全修复


大纲

知识点:

1、商品购买数量&价格&编号等

2、支付模式状态&接口&负数等

3、折扣处理-优患券&积分&重放等

详细点:

1、熟悉常见支付流程

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

2、熟悉那些数据篡改

商品编号ID,购买价格,购买数量,支付方式,订单号,支付状态等 数量能不能修改,价格能不能修改,编号能不能修改。怎么判定支付成功还是支付失败(能不能修改),支付接口能不能被篡改

3、熟悉那些修改方式

替换支付(用3000支付6000的东西),重复支付(支付完成,把支付流程数据包重新走一遍),最小额支付,负数支付,溢出支付,优惠券支付等

数据算改-价格&数量&产品

1、修改数量达到价格变动
因为没有把这些参数固定死,导致出现的安全问题

2、修改单价达到价格变动

3、修改产品达到低价购买(A产品5400 B产品6000,通过将A产品数据包中除价格外内容修改为B产品)

4、修改接口达到成功购买

修改支付接口,抓包可以看到这一系列参数就是代表的支付宝接口,如果说你把这个改成你自己的支付接口的话,就像行当与你把钱付给自己。然后支付状态也没问题的话,对方就会认为成功支付了。但是这个支付接口是比较难申请的,因为关联一些洗钱相关的黑色产业,所以抓的比较紧,并且也是违法行为。这里不做演示,知道有这个东西就好。

这是一个攻击点,但防御也很简单,就是对方不认你这个接口,它直接在源码中写清楚只接受自己的接口,所以就算你改成功了,并且也付款成功了。对方那里就会显示购买失败。

修改方式-订单号&数量&优患券

1、修改数量达到价格变动(修改数量为0.0001)

2、修改订单达到底价购买(修改订单编号内容达到低价支付高价订单)

3、优患券重放使用&重领使用

通过修改,可以发现,假如我们就算没有优惠卷了,只要知道这个数据包的规则,那么我们也可以进行修改use_coupon的值,来达到有优惠卷的效果。

某实例演示站交易支付逻辑安全

奇乐中介–修改订单金额

奇乐CMS - 致力于打造最专业的互联网产品

代码审计-业务支付逻辑&安全修复

1、金额以数据库定义为准

2、购买数量限制为正整数

3、优惠券固定使用后删除

4、订单生成后检测对应值

价格分析:

damicms(可更改)
访问,抓包:http://127.0.0.1:8117/index.php?s=/articles/70.html
 
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 HTTP/1.1
 
找到相对应的文件web\Lib\Action\MenberAction.class.php

nunstop(不可更改)
访问,抓包http://127.0.0.1:8116/index.php?s=/member/paymentorder
 
POST /index.php?s=/member/ordercreatesession HTTP/1.1
tag=buy_now&sku_id=1&num=1
 
找到相对应的文件:application\shop\controller\Member.php下的ordercreatesession方法

接受了$_SESSION['order_tag'] = 'buy_now';
$_SESSION['order_sku_list'] = $_POST['sku_id'] . ':' . $_POST['num'];
在这里没有接受价格等信息。
 
重新抓取数据包,看这个价格是从哪里来的,触发地址
/index.php?s=/member/paymentorder
/index.php?s=/components/getlogininfo
/index.php?s=/components/platformadvlist 
 
说明这三个数据包里面出现价格的换算。
application\shop\controller\Member发现价格换算

这个就是通过数据库的查询来获取价格。

🍬 博主介绍
👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【edusrc漏洞挖掘】 【VulnHub靶场复现】【面试分析】
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋

🍬 博主资源
🎉需要如下资料和培训的可加微信和知识星球(前50名为邀请嘉宾) 知识星球号:9081196🎉
1、全国职业技能大赛——信息安全管理与评估WP+环境
2、全国职业技能大赛——司法技术赛项WP+环境
3、CTF最新资料+相关工具(圈子交流)
4、SRC漏洞挖掘的大量原创报告


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个想当文人的黑客

您的鼓励是对我最大的动力!!!

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

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

打赏作者

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

抵扣说明:

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

余额充值