探討一下某團購網的漏洞

探討一下某團購網的漏洞

前言:

去年九月份同事在某團購網買了一份火鍋套餐,后來幾乎每天都去購買。元旦期間,該團購網推出了“VIP會員0元領紅包”活動,領紅包誰不喜歡?因此我也參與了該活動。

于是果斷進去注冊,點擊購買,進入了購物車再點擊確認訂單,恩?怎么alert這么一句“本活動只限VIP會員參與”?我第一反應是去看頁面源代碼(由于該活動已經結束,進不去購買頁面了,所以在這里我只好用偽代碼來表示):

//確認訂單按鈕的點擊事件function?btn_click(){????? ????ajax獲取當前用戶的類型???? ????????如果不是VIP,alert("本活動僅限VIP會員參與");????? ????????????否則?form1.submit(); ????????????}

然后我在地址欄敲入:JavaScript:form1.submit(); 回車! 進入付款頁面了,再點擊確定,恩?購買成功!我獲得了5元紅包!

探討一下某團購網的漏洞

太給力了!!!我又新注冊一個賬號,重復上面的步驟,也成功獲得了5元紅包。

馬上給客服留言說明此bug,不過到今天還沒回復我,呵呵。

這個漏洞的關鍵點是開發人員忘記了在form1.submit()的后臺代碼中判斷當前用戶是否VIP會員,只依賴于javascript的驗證。

前臺的驗證頂啥用啊,完全可以繞過去,后臺的驗證才最重要!!

有了上午的收獲,1號晚上我就繼續找別的團購網的漏洞,果然被我找到一個更嚴重的。

該團購網也舉行了一個元旦抽獎砸金蛋活動,也是免費參與,購買后發現得邀請好友參與活動才有砸金蛋的機會,邀請一個好友就多一個機會,如圖:

探討一下某團購網的漏洞

我一點擊金蛋就alert一句“沒有抽獎機會了快去邀請好友吧!”,恩,又是javascript?看看代碼先:

探討一下某團購網的漏洞

這便是金蛋的點擊事件,其中有一個用AJAX去訪問的頁面lottery1.php,而要傳過去的chance變量應該就是當前用戶擁有的砸蛋機會。

(學習視頻分享:編程入門

我試著直接訪問lottery1.php?chance=1,返回Error字符串,lottery1.php?chance=0也返回error,lottery1.php?chance=-1,也

返回error,難道沒效果么?我刷新了一下砸金蛋的頁面,哇!!

探討一下某團購網的漏洞

我傳了-1過去導致溢出了?我試著砸了幾個,每次都成功獲得代金卷!!太給力了。接著試著用代金卷去下單,也能成功減免掉幾塊錢,

不過一張訂單只能用一個代金卷,呵呵(當然測試用的訂單我最后取消掉了,本人還沒那么邪惡,哇咔咔)

馬上聯系客服,居然下班了,QQ不在線,電話打不通,只好留了個言。

接下來干嘛呢?砸蛋唄!42億的金蛋呢,寫了段JS自動砸!截止現在一共有3588個金蛋被砸開,其中至少有2000多個是我砸的,哇咔咔

得到了一大的代金卷:

探討一下某團購網的漏洞

整整185頁,呵呵,蠻壯觀的!!!

到了2號,我重新查看該團購網的代碼時,發現了一個更嚴重的問題:

JS中有這么個方法

探討一下某團購網的漏洞

乍一看是跟錢有關的吧,傳入用戶ID和錢的數目,試試有什么效果。

用戶ID怎么獲得呢?別急,頁面上有:

探討一下某團購網的漏洞

這個96204就是我當前帳戶的ID了,訪問了一下,返回“線下充值成功”,哇,這么給力?充值頁面都不加權限驗證的?

查看了一下帳戶余額,果然充值成功了:

探討一下某團購網的漏洞

哥有2萬余額了,哇咔咔!!這個漏洞太致命了,立馬給客服留言。剛留完言,他們的開發人員給我打電話了,和我討論

砸金蛋的漏洞問題,正好將剛發現的漏洞一起告訴他。開發人員就是命苦啊,元旦期間,晚上10點多了,他還要改代碼。

改完他說老板可能送點禮品給我,好期待啊,呵呵。

最后他把我的帳戶余額清零了,我在心里呼喊:不~要~啊,我的2萬元啊~~~~~~~~

總結一下:前臺的驗證都是不靠譜的,后臺必要都要驗證一遍;管理頁面一定要加訪問權限;傳遞到后臺的數據一定要

進行合法性驗證;不必要傳遞的參數就不傳,比如那個砸蛋,我就想不明白為什么要把當前用戶擁有的砸蛋機會傳遞到

后臺,直接從數據庫中讀取不行么?用戶ID不要以明文出現。另外還要防范xss跨站腳本攻擊(一般用判斷主機頭的方式)

我的網站:http://i.goto327.top:85/

相關推薦:編程入門

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享