以前只是聽(tīng)說(shuō)某某互聯(lián)網(wǎng)公司被黑,某程數(shù)據(jù)庫(kù)被物理刪除。每每在知乎上看見(jiàn)這種文章自己還樂(lè)的不行,但是今天我自己居然也被黑了,真的是悲憤異常,接下來(lái)就按照時(shí)間線梳理一下自己被黑的這一波。
10:30分 ?頁(yè)面打不開(kāi)了!??!
早上起床刷了牙洗了臉我默默打開(kāi)自己的筆記本想看過(guò)去的一夜服務(wù)器流量和運(yùn)行狀況,我找到后臺(tái)登錄接口,輸入用戶名和口令點(diǎn)擊了提交,郁悶的事情出現(xiàn)了瀏覽器顯示數(shù)據(jù)已經(jīng)提交但是既沒(méi)有頁(yè)面跳轉(zhuǎn)也沒(méi)有提示密碼輸入錯(cuò)誤就這樣等了五秒鐘,我以為是宿舍的網(wǎng)絡(luò)又出現(xiàn)毛病了于是切了另外一個(gè)網(wǎng)又試了一次發(fā)現(xiàn)結(jié)果還是一樣,我切出去試了一下hao123這個(gè)網(wǎng),發(fā)現(xiàn)打開(kāi)的很迅速啊。我又想著打開(kāi)博客首頁(yè)看看首頁(yè)的情況怎么樣,結(jié)果首頁(yè)的情況也令人揪心,基本上就是這樣的顯示:

事實(shí)上,實(shí)際的情況比這個(gè)圖稍好一些。當(dāng)時(shí)個(gè)人的頭像能夠正常顯示,首頁(yè)背景大圖下的個(gè)人信息也能正確顯示。手機(jī)版wap網(wǎng)頁(yè)的情況與首頁(yè)類似,同樣是基礎(chǔ)的個(gè)人信息與頭像可以加載但是博客的正文內(nèi)容無(wú)法加載。我當(dāng)時(shí)就猜測(cè)應(yīng)該是數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題了,因?yàn)橄到y(tǒng)在設(shè)計(jì)的時(shí)候就被設(shè)定為服務(wù)器啟動(dòng)時(shí)個(gè)人信息即從數(shù)據(jù)中加載至內(nèi)存中,這部分個(gè)人信息的生命周期與整個(gè)web應(yīng)用的生存周期相同。因此頁(yè)面能出現(xiàn),個(gè)人信息可以出現(xiàn)應(yīng)該不是服務(wù)器出現(xiàn)問(wèn)題。剩下那些無(wú)法出現(xiàn)的信息都與數(shù)據(jù)庫(kù)有關(guān),應(yīng)該是數(shù)據(jù)庫(kù)出現(xiàn)了問(wèn)題。
11:00 ?數(shù)據(jù)庫(kù)被物理刪除?。?!
緊接著我打開(kāi)putty,遠(yuǎn)程連接主機(jī)。連接的時(shí)候我在想會(huì)不會(huì)是程序哪里出現(xiàn)異??ㄗ×诉€是怎么著。進(jìn)入之后我首先停止服務(wù)器應(yīng)用層軟件,然后嘗試重新啟動(dòng)服務(wù),還好服務(wù)啟動(dòng)成功了,接著,我再次停止應(yīng)用層服務(wù)器(因?yàn)檫@么做是想測(cè)試與數(shù)據(jù)庫(kù)的連接,一般連接問(wèn)題會(huì)在第二次停止時(shí)暴露)果然,在第二次嘗試停止服務(wù)時(shí)出現(xiàn)了異常,服務(wù)器拋出Connection
refused異常,說(shuō)明服務(wù)器與數(shù)據(jù)庫(kù)無(wú)法正常連接。首先我想打的是會(huì)不會(huì)是數(shù)據(jù)庫(kù)的密碼寫錯(cuò)了,因?yàn)橹耙惨驗(yàn)槊艽a寫錯(cuò)導(dǎo)致過(guò)這樣的問(wèn)題,但是我明白這個(gè)錯(cuò)誤出現(xiàn)的機(jī)率很小,因?yàn)樯洗尾渴鸷笠呀?jīng)正常運(yùn)行很長(zhǎng)時(shí)間了要是密碼寫錯(cuò)早就出問(wèn)題了。不出所料,不是密碼的問(wèn)題。無(wú)奈,只好查看服務(wù)器日志:

一打開(kāi)直接嚇懵了,砰砰砰一長(zhǎng)串異常信息。我仔細(xì)看了一下最多的一個(gè)異常是說(shuō)無(wú)法與數(shù)據(jù)庫(kù)建立連接,嘗試三次后放棄。我十分不解,但是一時(shí)也沒(méi)個(gè)頭緒。
想了半天實(shí)在想不出來(lái)哪出問(wèn)題了之后我想試試在本地遠(yuǎn)程連接一次數(shù)據(jù)庫(kù)看看到底是怎么了。我打開(kāi)navicat找到遠(yuǎn)程數(shù)據(jù)庫(kù)的那個(gè)連接雙擊,居然毫不費(fèi)力地連接成功了。當(dāng)時(shí)我真的一臉懵逼,這是什么情況,遠(yuǎn)程連接都正常,本地連接卻失敗。而下一秒,我就恍然大悟了。navicat在連接成功后彈出了我所有的已知數(shù)據(jù)庫(kù):整個(gè)mysql下只剩了兩個(gè)默認(rèn)數(shù)據(jù)庫(kù),其余的數(shù)據(jù)庫(kù)全部都不見(jiàn)了,這我才回過(guò)神來(lái)明白了一切。之所以連接錯(cuò)誤是因?yàn)閿?shù)據(jù)庫(kù)早就被物理刪除了所以才一直連接失敗。
11:20 ?似乎多了點(diǎn)什么。。。
正當(dāng)我疑惑為什么數(shù)據(jù)庫(kù)會(huì)被物理刪除時(shí),我驚奇地發(fā)現(xiàn)遠(yuǎn)程連接下似乎多了什么:

怎么我自己的mysql下多出了一個(gè)我陌生的數(shù)據(jù)庫(kù),我雙擊打開(kāi)這個(gè)數(shù)據(jù)庫(kù)發(fā)現(xiàn)里面也沒(méi)有任何數(shù)據(jù)。我瞄了一眼這個(gè)數(shù)據(jù)庫(kù)的名字a_QQ2997057352,這該不會(huì)是個(gè)QQ號(hào)吧。想到這里我記已經(jīng)有點(diǎn)預(yù)感不祥了,我打開(kāi)QQ搜了一下這個(gè)號(hào)碼:

事情到這里已經(jīng)十分明朗了,數(shù)據(jù)庫(kù)被破解了,所有數(shù)據(jù)庫(kù)被物理刪除。真是。。。
11:50 ?艱難恢復(fù)。
接下來(lái)呢?怎么辦,加他qq付錢恢復(fù)數(shù)據(jù)嗎?我不會(huì)向黑惡勢(shì)力低頭的,還好我保留了所有的數(shù)據(jù)庫(kù)源代碼。我一個(gè)一個(gè)把數(shù)據(jù)表重新建好,然后重新遠(yuǎn)程登錄主機(jī),暫停了所有服務(wù),再重新啟動(dòng)服務(wù)。還好這次正常了,沒(méi)有出現(xiàn)任何異常,查看服務(wù)器日志也沒(méi)有發(fā)現(xiàn)異常了。我重新打開(kāi)主頁(yè)發(fā)現(xiàn)一切都恢復(fù)正常了,只是所有的數(shù)據(jù)都沒(méi)了,一千多條數(shù)據(jù)全部沒(méi)了,然后改密碼,改密碼,改密碼。真是愉快的一天啊。
沒(méi)辦法,接下來(lái)我的博客只有從零開(kāi)始了。
反思
安全無(wú)小事,這次數(shù)據(jù)庫(kù)被這么輕松的破解和我自己安全意識(shí)不強(qiáng)有很大關(guān)系。自己總是覺(jué)得被黑這種事兒不會(huì)這么巧落在自己的頭上,于是乎數(shù)據(jù)庫(kù)的登錄密碼一直沿用默認(rèn)的賬號(hào)和密碼(其實(shí)默認(rèn)的root賬戶根本不用密碼就能進(jìn)),而且數(shù)據(jù)庫(kù)從來(lái)不備份。這才導(dǎo)致了被黑之后數(shù)據(jù)完全丟失的慘狀,在之后一定要加強(qiáng)安全意識(shí),勤做備份。警示,希望被黑這事兒不要再落我頭上了。
2016年11月28日