官术网_书友最值得收藏!

2.8.2 案例分析

1.數值精度測試

筆者對某交易所進行測試時發(fā)現,其默認小數點精度為小數點后3位小數,多于3位時會四舍五入,比如0.999 9,系統(tǒng)會默認為1,此精度問題可能會導致被攻擊者薅羊毛。

攻擊者可以注冊兩個賬號,一個掛單(無須認證即可掛單),一個出售,配合無限薅羊毛。雖然單次獲取的收益很小,但是無限制的話,造成的損失還是不小的,攻擊者可以套取系統(tǒng)中心賬號代幣,并出售代幣套現。

如圖2.45所示,批量下單0.999 9個代幣,當15分鐘后,系統(tǒng)默認取消交易,然后錢包中心將返回1個代幣給賣家,獲取額外代幣。

圖 2.45

建議嚴格按照3位小數精度進行算術運算,并對下單頻率以及數量進行限制。

2.接口頻率限制測試

(1)郵箱驗證接口

在進行身份甄別時,郵箱驗證碼因免費而被廣泛使用。但是在開發(fā)過程中如果沒有正確地限制接口頻率,驗證碼就可能被用來進行電子郵箱炸彈攻擊。電子郵件炸彈是最古老的匿名攻擊之一,通過設置一臺機器不斷地大量向同一地址發(fā)送電子郵件,攻擊者能夠耗盡接收者的網絡資源,如圖2.46所示。

圖 2.46

(2)短信驗證接口

與上述郵箱驗證相同,短信驗證方式因方便快捷以及安全性較高也被廣泛用于身份驗證中(見圖2.47)。與郵箱驗證不同的是,短信驗證碼的條數是需要按照數量付費的。如果未進行合理頻率限制,則會導致:

·持續(xù)給手機號發(fā)送垃圾短信,造成極差的用戶體驗。

·對于公司來說,發(fā)送短信一般需要第三方運營商,每條短信需要支付費用,如果一天被刷幾十萬條,會造成上萬元的虧損。

圖 2.47

3.批量刷單

我們團隊在對某交易所進行安全測試時發(fā)現,可不停購買數量為負數的代幣,然后確認付款,在商家后臺無法進行確認收款,可以批量生產垃圾訂單,而且會導致短信炸彈。請求如圖2.48所示。

圖 2.48

此漏洞是因接受非法參數以及未做頻率限制而造成的,不僅影響到業(yè)務流程的正常運轉,而且耗費了大量的短信資源。這種操作單次進行時看起來危害較小,所以經常會被忽略,但如果被無限制地利用,造成的損失將非常巨大。

主站蜘蛛池模板: 中宁县| 杭州市| 无棣县| 墨江| 三原县| 施秉县| 百色市| 保康县| 灵武市| 连江县| 石屏县| 平阴县| 张掖市| 福建省| 梓潼县| 龙胜| 夏津县| 米易县| 临猗县| 毕节市| 敖汉旗| 阜南县| 蓬安县| 读书| 临清市| 寿光市| 田林县| 巴东县| 东阿县| 微山县| 琼中| 霍州市| 察哈| 江川县| 宜州市| 成都市| 铅山县| 南乐县| 平邑县| 平山县| 岳普湖县|