黑客是如何做到破解密碼,繞過令牌,異地改密登錄遊戲賬號的?
前兩天看到一個帖子,很好奇他是怎麼做到的,貼主的圖片如圖,1分鐘之內所以保密措施被解除,現在黑客有這麼高明么?
首先,貼個公眾號的鏈接,是講個基礎的:
吃我一記惡意鏈接,談談跨站腳本攻擊
網站的文章千千萬,老司機們的評論區佔一半。
就算沒有見過評論區,文章、帖子總該見過吧?
今天,就來談談——老司機們開車後,你該不該跟上上車的問題。
假如你打開了三個不同的網站,一個是某搜索網站、一個是谷歌郵箱,一個是新聞網站,請問,他們之間能互相窺探對方的數據嗎?
比如說,你在網頁上登錄了谷歌的郵箱,裡面的郵件,是否能被新聞網站或者某度偷偷看到?
答案是不能。因為這種問題早在瀏覽器被設計出來的時候就考慮過了,我們稱之為「同源策略」。
就是說,每個網站打開後就相當於各自安置在各自的小村莊里,該網站里有很多頁面,就像村民,可以相互交流。但是,想去其他村莊改善基因庫?想都別想!每個村落間,可是隔著一條大河,過都別想過。
但是——這樣一來,就太閉塞了。有人總想去其他村莊看看啊?
這個時候,就需要一艘名為鏈接的船。點擊之後,就能跳轉到其他的網站頁面。
可是這種船隻的過往規則比去港澳台還要嚴格:你去可以,但是任何特產都不能帶回來,嗯,一隻蒼蠅都別想帶回來。
不過,帶東西出去是可以的。你把整個村子的財產帶過去都沒人管你。
就像你從電子郵箱里點開了一封信,這封信是用來重置你某個忘記密碼的網站的賬戶信息的,有的一點開,就已經默認你登錄了,就是因為這個鏈接里包含了一些登錄信息,格式看起來應該是這樣的:
http://www.aaa.com/reset?user=A3DE2F^FBD#Ipsw=%2d%20
那麼,如果你想獲得某個人A網站(良好網站)的用戶名密碼,或者其他登錄信息,最好的方式是什麼呢?讓人在B網站(惡意網站)打開A網?
No……因為剛才的策略不允許。
但是反之,就不一樣了。
你在A網站讓人點開B網站(惡意網站),然後在B網站接受A網站的信息,不就行了?
對對對,這是可行的。
再良好的A網站也有可能有惡意的人留下了惡意的鏈接,而且有一些網站的鏈接還不是直接寫出來讓你看到的,這樣就可以在你神不知鬼不覺的情況下,窺探你的信息。
——好吧,實際上,是你自己把信息送給別人。
那麼,黑客們最想拿的信息是什麼呢?無非是你的登錄信息。當然,現在很少網站會提供真正的「記住我」的功能,所以登錄信息不會那麼好拿。
比如說一些網站會提供「自動登錄」的功能,但它會在你的電腦里記錄的是你的令牌消息,而不是你的用戶名跟密碼。
(如果真是記住你的用戶名密碼,那這種網站還是別去了。)
什麼叫令牌?上次說過了,如果你是個小妖精,大王派你去巡山,就會給你一個令牌,而不是給你「天王蓋地虎」、「芝麻開門」之類的密碼。因為這樣顯然看起來更加「安全」。
哦,還有,令牌是有時效性的,就是說如果你下山巡山,七點鐘之前不回來,那你就得跟門衛大怪們對暗號,對密碼:
「你是哪座山的?」
「黑風山小旋風,門牌號7574」
「嗯……好,進去吧。」
網站能記錄令牌的地方不多,cookie是通用的一個。這裡的cookie不是曲奇餅,而是一個存儲的地方的名稱。
說回來能留下評論的A網站,如果有人故意提交了一個帶有鏈接的評論,(而且繞過了A網站的內容檢測),那麼看到這個鏈接的人就有可能一時手癢點開它。
這個鏈接通常會跟上A網站的諸多信息,比如……剛剛說到的令牌。
讓我們來演示一下A網站上可能留下這麼一個評論,點開後,就會把cookie信息顯示出來(同理也可以跳轉到其他頁面。)
(請無視網站名……只是舉個例子)
這樣真的行?對,這樣看起來,就是A網站拖家帶口渡河去B網站。
這樣是允許的。
這樣一來……B網站只要打開大門等你來,來了就把你的信息照單全收就行了。
再然後怎麼通過偽造跟你一樣的令牌登錄上網站、然後blablabla地拿走你的賬戶信息、密碼什麼的,就是另一個故事了。
所以啊……論壇帖子、網站評論中的誘人的鏈接之類的,不管再誘人,你們都要抓緊自己的手,千萬別隨隨便便就點上去啊。
————————————————————
上面是原答案的第一部分,
如果還不知道鏈接是個什麼鬼東西,看看這第二部分。知道的話直接拉到最後唄……
————————————————————
關於利用鏈接的跨站腳本攻擊,上次講了個大概。由於行文時間緊張,可能還有些許講得太快,這裡補充一下。
所謂鏈接,無非就是告訴瀏覽器:嘿,我要去哪個站點,訪問哪個模塊,哪個頁面,還有我希望是該頁面定位到第幾頁。
比如看某個小說。
裡面的鏈接風格看起來會是:
http://www.somesite.com/xs/tlbb.html?page=23
劃重點啊:這裡的xs(小說)代表去某個分類下,tlbb.html代表打開《天龍八部》那部經典武俠名著,然後重點來了:這部小說有數十萬字,總得一頁頁顯示給你看吧?所以後面跟了一個參數page,表示打開到第23章。之所以隔了個問號「?」,其實真的就是為了分隔開頁面跟參數而已……無他。
那麼,網站那邊接到這個請求的時候,是什麼情況?
網站可能會這麼處理:
- 定位到/xs/tlbb.html這個頁面,也就類似於咱們打開我的電腦,定位到這個目錄下的文件。
- 找到這個文件之後,順便把處理這個頁面的管理員找到,告訴他:有人想看你啦。
- 哦?管理頁面的管理員趕緊拿出筆:讀者想看哪章?參數給我看看?
- 網站那邊的人說:趕緊啦!參數是page=23,快快快。
- 管理員趕緊定位到23頁的那章內容,找到啦,趕緊趕緊。(可能每章已經獨立保存成單個的網頁,也有可能是存在資料庫里,也有可能是單獨的txt)
- 然後,就把那個頁面內容排出來(或者已經預先排好),piu~的一下返回到你的電腦上。
那麼,當這個page參數檢查不嚴謹,而且有可能會代入到頁面的時候,會發生什麼狀況?
就像上一次說到SQL可以被注入一樣,這裡的頁面也有被注入惡意代碼的風險。
比如還是剛才的page,如果這個參數的值23會不經檢查,顯示在小說頁面裡面,會是什麼結果?
儘管你看到的是一個頁面,但是在你看到這個頁面之前,瀏覽器卻看到的是一坨坨的代碼……(真是難為瀏覽器了)
是的,右邊才是網站扔給你的「頁面」。瀏覽器一看,喲,不得了,得趕緊按照一定的規則編排一下,還有該執行的代碼趕緊執行一下。(假設上圖中的23來自於參數page。)
嗯,如果HTML里含有一些腳本代碼,那麼,瀏覽器也會乖乖執行。
那麼,當上面的參數
page=23">& &&
呢?你沒看錯,這裡的後面跟了一串都會是page的內容。這是被精心(隨便)構造的一個值,用於提前結束掉原網頁代碼的某些內容。
讓我們把剛才頁面的23替換為新的23及後面一串參數,你看到了啥?
新增了一個&&
這種鏈接一看就很奇怪啦!你怎麼可能會去點?!
(╯‵□′)╯︵┻━┻
不過……如果人家不會這麼笨地告訴你鏈接是這個,而是:
你點不點?
————————————————————
這裡是分割線。第三部分來了
————————————————————
那麼,問題來了,題主這樣的,屬不屬於跨站腳本攻擊?通過跨站拿令牌?
我認為——並不是。因為跨站的前提是通過向原網站,也就是遊戲網站植入惡意代碼,再騙你在該網站上點擊或者js執行操作才能得到對應的令牌。然而現在的網站(像大騰訊……)基本沒植入跨站腳本的可能(但不絕對)。如果要在官網植入代碼,鏈接肯定會又臭又長,很容易發現的。
嗯,說了那麼多,就是為了說:更可能的是,對方偽造了一個類似的站點,給了個短連接,或者類似鏈接,然後讓這位哥們提交登錄名、密碼,然後在偽造站點的另一端,人家開開心心地把遊戲密碼拿到了。
比如我經常去上這樣的網站:
這就是偽造的網站,網站名還帶個lol……驗證碼還是萬年不變的……不過這個網站比較良心,叫你匯款,不用你登錄。
至於異地改密碼的問題——可能是驗證問題太弱了?還是網站本身存在修改密碼的問題。
如果猜測有誤,下次修改。
前提是有號主人的相關信息,充分的收集到位,或者已經中木馬的情況下實現
我們黑客忙著修電腦呢,沒空盜你號。
我要盜號
我想盜號
先問是不是,再問為什麼
推薦閱讀:
※在編寫伺服器的時候,埠號是任意的嗎?還是必須要3333呢?
※互聯網經濟的泡沫還有多久破裂?未來十年內編程行業如何?
※怎麼在移動端調試web前端?
※無線WiFi鄰頻干擾的影響有多大?
※網路工程專業的前景如何?