網絡安全從入門到精通(第九章-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,超過一定金額(閾值)時,進行人工審覈
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章