我是一個母胎solo的攻城獅。和大部分地鐵低頭族一樣,漫長的通勤時間內除了玄幻小說和短影片,能陪伴我的還有各種小程式遊戲。
9月的一天,一個叫“羊了個羊”的遊戲突然冒了出來,據說連學霸都沉迷於此難以自拔,所以我也在下班路上點開了遊戲。
在好奇心和疑惑的驅使下我刷第一關用時15秒,我心想,這不就是消消樂嗎,以我的智商加上多年的遊戲經驗,一個消消樂也能難得住我?於是我在第二關刷到了睡覺前……
像這種無聊的遊戲,我都懶得認真玩,於是第二天下班後我又刷到了睡覺前,然後是第三天。。。
“原來是個沒有靈根的貴物……”我承認我已經快被這句廣告詞整emo了
然而我還滯留在第二關。如果說我花了三個晚上數羊,那麼至少有三分之一的時間在看一個30秒的廣告。
也許消消樂真的不適合我,但這些廣告激起了我扭曲的好勝心,所以我果斷地關掉遊戲,開啟了我的網路測試工具。是的,我放棄了,作為一名安全攻城獅,我要用自己的方式來數羊!
9月20日晚,有風,微涼
我要看看到底有多少人在數羊,為此我找到了一個API介面 /sheep/**/**/user_info?uid=xxxx,是的,這個介面可以檢視使用者,甚至能看到每個使用者加入遊戲的時間,還有微信OpenID。
通常uid需要和一個叫做token的資料對應起來才能正常使用,但我發現羊羊的token可以被重複利用,於是我遍歷到了它的使用者數……
是的,你沒有看錯,2.8億!截止到9月20日,已經有2.8億個微信使用者在數羊了,難怪這遊戲的每日流水都能上百萬。我佛了。。。
讓我看看還能幹點啥,於是我又找到一個API介面,/sheep/**/**/user_rank_info,這個介面貌似可以看到每個使用者的暱稱、頭像,還有地區,於是我發現了一堆奇怪的頭像……emm,我是不是也該換個頭像了,也許頭像是我依然單身的直接原因。
9月21日晚,大風,很冷
周圍的同事都在熱議顯擺自己的成績,我不屑的笑了。我只想對他們說,哥已經看淡了,你們這些凡人。
但是我還在第二關,所以為什麼別人能夠通關99999次,我不是很理解,也不能忍。
於是我再次開啟了我的工具,/sheep/**/**/game_over,我又發現了一個介面,一個……可以無限次刷補羊次數的介面,當然前提是要先通關。
你問我怎麼做到的?token啊,只要帶上自己的token反覆請求就行。昨天我已經說過了,羊羊的token可以被重複利用,劃重點——此處是一個callback……
9月22日晚,有風,不冷
我正在對著羊發呆,我發現自己也沉迷其中無法自拔了。跟大家的症狀不同,別人是對著超市裡的玉米酸奶和刷子發呆。
而我,對著我的工具發呆。是的,我又發現了一些“東東”……羊羊使用的token欄位是jwt格式,jwt格式是什麼不重要,但攻擊者可以透過修改演算法為none或者操控kid值來實現控制secretkey從而偽造任意token,這種攻擊不好防禦並且羊羊很可能存在這樣的風險……
好吧,這些是什麼意思其實都不重要,重點是也許我可以透過一些操作來繞過token的校驗,換句話說就是可以嘗試更加危險的操作。
所以我再次emo了,這不是我的本意。但作為一個技術控,我還是很難說服自己。現在的我需要一個幫手可以壓制我獵奇的慾望,這時我想到了RayAPI,一個可以防止各種API攻擊的系統,我把它串聯在我的網路和“羊”之間,然後嘗試我之前發現的各種騷操作,發現它們都被成功的攔截了!!
API安全防護系統(RayAPI)
我長出了一口氣,終於可以放心使用API了。
(截止到筆者發稿前,上述小遊戲的安全問題也已經修復了很多,此處還是忍不住給程式猿同學點贊!)
現在我已經不再數羊了,但人的獵奇慾望難以控制,正如攻擊者的攻擊意圖難以杜絕,而介面的漏洞風險也無法百分之百避免一樣。
沒有絕對的安全。多數情況下,我們需要專業的安全產品來做好防護,RayAPI就是這樣一款讓人放心的API安全防護產品。感興趣的同學,可以撥打盛邦安全產品諮詢熱線:4006-911-199
好了,我要回歸平靜的搬磚生活了,下次我們們再繼續聊一些有趣的話題。
原文連結