說明:前端
本人由於學習,恰好想到了此酷..,因此有任何違法的事情 或者其它,請聯繫本人,,刪除本貼,特此公開:,,本人能力有限,不肯承擔任何風險算法
源由:瀏覽器
前些天,看到首頁有推 一個帖子名爲[某短信轟炸]的例子,因此我也跟着酷狗了來看一發,此註冊的例子cookie
工具:dom
js調試工具工具
抓包工具學習
谷哥瀏覽器測試
1 :先抓一發註冊包(直接發送的GET請求)加密
看包內有什麼參數(因爲抓包時忘記了截圖因此直接上抓包後的內容,各位能夠親自用f12看一看,都是大神,我就不補了)spa
包內具體內容:如截圖
能夠得知發包內主要參數就是mid參數,看長度能夠得出是md5加密
2 找mid從哪得出,
1 search mid內容以後,發現mid由cookie中拿到
索性直接找前端寫入cook的方法document.write 和 write
2 居然找到了下面這條.能夠看出來,這是寫入cook的核心算法,
KgUser.Cookie.write(KgUser.KgMid.name, KgUser.Md5(n), KgUser.KgMid.days * 86400, "/", KgUser.GetDomain());
明眼人都能看出來其中的意思
3 找出算法了,,接下來,看其中的MD5傳入的n 是什麼值,經過下斷點的方式,找到了
下面是n 值的算法 ,生成的就是一串UUID的值帶入上面的算法中
function a () { function S4() { return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); // 隨機生機數*65536取整,而後轉換成16位.並取從第一位的後面的數字,結果爲16進制 } return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4()); // 進行字符拼接 } 返回內容:4a6ceb81-0aac-7b50-a1d4-f7890381de6e
4 把這些東西看完了,而後測試了兩次,忽然發覺
這個短信接口的邏輯仍是至關簡單,全都是固定值,
1 惟獨cook須要生成
2 時間戳更新一下
而後: 我特麼,shit,這特麼cookies隨便怎麼生成而後傳入到短信接口都行啊!
繞我這麼一大圈,
5 好的,後來看了一下,其實以爲酷狗這短信接口的邏輯仍是蠻容易誤導的,不過多調試了幾回就發現問題的所在了
6 總結:
步驟其實也很簡單
1 生成隨機數,(uuID) 2 md5(加密) 生成mid和時間戳 3 帶上cookie訪問 4 帶上cookie發送