前言
這是一個風和日麗的下午,想著從網上找一套表白網的原始碼自己進行修改然後討女友歡心。當我正在GitHub進行搜尋翻閱時,一個表白牆的原始碼映入眼中。我好奇的點開演示網站,故事開始了。
“血案”的引發
當我點選進入演示網站檢視時,發現介面比較簡潔。莫名的手癢了起來,想嘗試搞一番。介面如下:
同時,我們觀察介面也會發現,這個演示網站其實是跑在他的部落格上的,也就是說,如果這個演示頁面有問題,那麼它的部落格也會淪陷。然後接著觀察。
順便新增了一個表白牆,看看功能,新增好以後,顯示介面如下:
當我看到有引數可以傳參時,因為有良好的職業素養,順手一個單引號,看看效果。然後就看到了mysql的錯誤回顯,當時我是非常震驚的。好嘛,這洞說來就來?
這還廢啥話,直接祭出sqlmap一把嗦。結果如下,不止存在報錯注入,還存在時間和布林盲注,如下圖:
還記得文章前面說的嗎?這個演示站是搭建在作者自己的部落格上的,這裡存在sql注入,是可以把他部落格打下來的。話不多說,開整。繼續使用sqlmap得知,資料庫中有一個庫,庫中存在多張表。如下圖:
根據表我們可以知道我們猜的沒有錯,部落格確實和演示站用的同一個庫。接下來就是找賬號密碼了。我們發現在表中是存在wp_users表的,我們想要的資料肯定也是在這張表中。我們猜的不錯,確實存在。結果如下圖:
一共兩個賬戶,但是第二個賬號的密碼沒有解密出來,但是我們得到了第一個賬戶的密碼。接下來就是找後臺了。其實我們通過表名字首就可以知道這個開源部落格程式WordPress。如果不清楚,我們可以藉助指紋識別外掛來進行識別。如下圖:
同樣可以識別出來,既然已經知道了是WordPress,那麼後臺也就很好找了,WordPress的預設後臺路徑為wp-login.php,我們可以嘗試一下。很幸運,作者並沒有改後臺路徑,如下圖:
通過我們剛才獲取到的賬號密碼,成功登陸後臺。
故事到這裡就結束了。
小結
在這裡再次囑咐大家,在實際環境中開發者要秉持“外部引數皆不可信原則”進行開發。