网络安全从入门到精通(第九章-3) 支付漏洞

本文内容:		
			~快捷支付原理
			~常见支付漏洞
			~支付漏洞如何挖掘
			~防御方法
每日一句:
			想到就去做,多试总没坏处
			注意尺度,且行且珍惜

一、快捷支付原理

	1,原理
			~浏览器跳转
					简单说,你付钱了,浏览器通知服务器,服务器更新你的金额
							//基本依托前端跳转,不可靠,现在应该极其少见
			~服务器端异步通知
					简单说,你付钱,发一个通知给服务器,
					同时,你支付的平台也会向服务器发送一个通知。
					服务器对比一下你的通知与支付平台通知,
					一致则更新你的金额。不一致,一般都会等待客服处理
							//相对安全
	
	2,补充
			~支付漏洞并不需要代码审计,其实更适合新手
			~支付漏洞属于逻辑漏洞,挖掘这类漏洞要有发散(奇葩)思维
				简单说,不按常理出牌,效果往往事半功倍
	
	
	3,注意:支付漏洞具有极高的法律危险,渗透测试要极为注意分寸
				建议:几元钱,几毛钱差额的测试

二、常见支付漏洞

	1,直接修改订单金额
			在订购、订单、付款的任意一步,抓包,修改金额。
			一般推荐在最后一步修改,因为每一步都可能有验证机制,少一事更好。
			至于金额数,可以是小数目或者尝试负数
	
	2,画棒棒糖的钱买电脑
			预购电脑,最后一步(付款前),抓包,查看到有一个xxid=100
				//假设xxid=100是电脑的id,即这个100就代表电脑
			
			预购糖,最后一步(付款前),抓包,查看糖的xxid=20
			
			返回第一个数据包,将xxid=100改为20
			
			点击付款,金额发生变化
	
	3,修改买的数量,0元买东西
			假设:键盘100,鼠标50
			
			购买订单,抓包,修改数量:键盘×1,鼠标×-2,
			
			结算,0元
	
	4,修改附属值(比如优惠劵、积分等等)
			~直接修改优惠劵的金额
			~修改优惠劵数量
			
			
			注意:商家搞活动的时候,最容易出问题
	
	5,越权漏洞(用别人的钱买自己的东西)
			抓包,看到有代表身份类得传参,如userid=xx等等,
			尝试改为别人的userid,试试能不能让别人给我们买帐
	
	6,无限制试用
			比如使用的参数为2,正常购买的参数为1
			我们不断的传参数2会发生什么呢
			
	7,总结:抓包,看到有数字类得东西就去改一改,说不定有奇效

三、支付漏洞如何挖掘

	1,找到关键的数据包
			可能一个支付操作有三四个数据包,我们要对数据包进行挑选。
			//最差也最有效的就是排除法
			
	2,分析数据包
			支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠),
			要尝试对数据包中的各个参数进行分析。
			
	3,不按套路出牌
			多去想想开发者没有想到的地方
			
	4,pc端尝试过,wap端也看看,app也试试。
			//app如何抓包,建议百度或谷歌。回答应该很详细

四、防御方法

	1,参数进行MD5加密、解密、数字签名及其验证,可以有效避免数据修改,
		及重放攻击中的各种问题
		
			补充:重放攻击,即将付款成功的数据包,不断重新发送
		
	2,不要相信用户传来的信息(一切参数都可以被修改)

	3,服务端,校验价格、数量参数	
			//比如产品数量仅能为正整数,限制购买产品数量等等
		
	4,与支付平台传来数据进行对比
	
	5,超过一定金额(阈值)时,进行人工审核
原创文章 61 获赞 13 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43970718/article/details/104327163
今日推荐