主題下載次數(shù)
服務(wù)網(wǎng)站數(shù)量
本站主題用戶
在WordPress中,通常惡意程序隱藏在插件或主題中。他們形態(tài)各異,有的發(fā)送垃圾郵件,有的植入隱形鏈接……不過這類惡意軟件原理很好理解,無非就是惡意插件中有網(wǎng)站管理員所需要的功能,然后網(wǎng)站管理員在沒有經(jīng)過嚴(yán)謹(jǐn)確認(rèn)便直接安裝。
有趣的黑帽SEO插件
就在本周,我遇到一款典型的黑帽SEO插件,它實(shí)現(xiàn)的手法十分有趣。
??該惡意插件核心文就在網(wǎng)站root目錄下。黑客通過利用該文件,將以下代碼注入到Index.php文件中。??
if?(?file_exists(?‘wp-core.php’?)?){?require_once(?'wp-core.php'?);?}
像這樣的Index.php注入看起來十分可疑,同時(shí)也告知我們wp-core.php并沒有被安裝,因?yàn)檫@將破環(huán)WordPress基本約定。
接下來,我們就好好看下wp-core.php文件吧。
???分析?wp-core.php文件??
該文件大概有500多行代碼,在其注釋行中,提到該插件是為保護(hù)WordPress CMS免受Brute-force攻擊而開發(fā)的,并且說是利用302重定向來進(jìn)行保護(hù),最后還提到必須第一個(gè)進(jìn)行加載。
在該文件的中間部分我發(fā)現(xiàn)了“bootstrap”的代碼
首先,他將“Bruteforce protection” 代碼注入到wp-login.php.
在登錄表單中加入onsubmit管理員并設(shè)置?“antibot_ajax”?cookies。接著還添加了一個(gè)用以檢測(cè)是否設(shè)置有cookies的代碼,如果沒有設(shè)置是不允許登錄的。這樣看起來似乎真的是在做對(duì)抗機(jī)器人的操作保護(hù)了用戶,毫無惡意。
接著,我們來看看“Auth 2nd level”代碼:
§
這個(gè)看起來更加可疑,其注入了一段加密了代碼。我們進(jìn)行了解密,驚奇的發(fā)現(xiàn)這段代碼也很正常。正如插件作者在開頭備注中所說的一樣,這是進(jìn)行第二次驗(yàn)證。如果登錄名和密碼是有效的,就會(huì)向WP數(shù)據(jù)庫檢索用戶郵箱,將從第三個(gè)字符開始進(jìn)行替換直到@符號(hào)位置,最后要求驗(yàn)證該郵箱。
所以,即使機(jī)器人支持Javascript以及cookies,并且幸運(yùn)的通過了第一層反機(jī)器人保護(hù),在第二層也是會(huì)失敗的,因?yàn)榈诙颖Wo(hù)是需要對(duì)郵箱進(jìn)行驗(yàn)證的。這樣即使是有人盜取了你的WordPress密碼,如果沒有進(jìn)行郵箱確認(rèn)也是無法登錄的。
用戶對(duì)電子郵箱地址進(jìn)行確認(rèn)過后,會(huì)有一個(gè)額外的設(shè)置步驟,對(duì)??WP_FLV_EMAIL_CONFIRMED??cookie設(shè)置為保存1000天,所以他們不需要每次登錄都進(jìn)行郵箱驗(yàn)證。
最后的“bootstrap” 部分,包含了將wp-core.php注入到index.php的代碼(你可以在文章的開頭看到)。它能夠確保?“bruteforce protection” 一直都能夠使用,如果wp-login.php中的代碼被移除,它能夠自己進(jìn)行修復(fù)。
如果我們忘記通過非常規(guī)方式向WordPress添加功能,這段代碼確實(shí)能夠起到強(qiáng)有力的保護(hù)機(jī)制。當(dāng)然,這并非看上去那么完美,對(duì)于那些有針對(duì)性的攻擊起到的作用并不大,特別是當(dāng)攻擊者了解這個(gè)保護(hù)機(jī)制以后。但是無法否認(rèn)的是,這個(gè)保護(hù)機(jī)制確實(shí)會(huì)為站長解決一些不必要的麻煩,至少這個(gè)保護(hù)機(jī)制能夠防止目前95%的自動(dòng)化枚舉攻擊。
講了半天,難道這個(gè)插件真真正正的是一款不可多得的優(yōu)秀插件?我會(huì)告訴你wp-core.php中500多行的代碼中有關(guān)“bootstrap”的代碼不足100行?那么剩下的80%代碼都是做什么的呢?
wp-core.php中的惡意代碼??
那么剩下的那80%代碼都是沒有保護(hù)作用的。
舉個(gè)例子,它可以顯示所有存儲(chǔ)在WordPress數(shù)據(jù)庫中的電子郵箱,如果不需要授權(quán)就可以提取郵箱地址,之前的保護(hù)也就變得毫無意義了。
同時(shí),還安裝有一個(gè)開放的重定向器。現(xiàn)在黑客就可以向使用了“bruteforce protection” 的網(wǎng)站站長發(fā)送垃圾郵件了,釣魚再或者對(duì)網(wǎng)站訪客進(jìn)行重定向到一個(gè)黑客指定的網(wǎng)站。
實(shí)例演示
??wp-core.php的主要功能就是管理?pharma-spam doorways。如果一個(gè)博客的URL有其特定的參數(shù)(比如“th”,類似?http://www .example .com/?th=doryx+150mg+exclusivity)那么wp-core.php會(huì)將正常的博客內(nèi)容替換成垃圾內(nèi)容。
如果訪問者不是機(jī)器人,而是來自搜索引擎。那么它會(huì)通過單獨(dú)的關(guān)鍵字,重定向到其他網(wǎng)站
在跳轉(zhuǎn)之前,惡意插件會(huì)設(shè)置一個(gè)相同命名的cookies作為URL參數(shù)。在接下來的100天內(nèi),相同的訪問者如果再次打開網(wǎng)頁依舊會(huì)進(jìn)行跳轉(zhuǎn)到其他頁面。
如果訪問者沒有cookies,也不是從搜索引擎過來的。這樣的訪問者所訪問頁面就會(huì)顯示大量的垃圾內(nèi)容。
這些垃圾內(nèi)容就存儲(chǔ)在wp-admin/update-backup.db文件中
通用性
??必須要提到一點(diǎn),盡管這是一個(gè)WordPress插件,但是同樣可在其他PHP站點(diǎn)中運(yùn)行。唯一的區(qū)別只是WP-specific函數(shù)無法使用而已。
總結(jié)
??總之這個(gè)插件真的很奇怪。??它試圖將所有類型的PHP站點(diǎn)作為目標(biāo),并將自身注入到index.php。但主要目標(biāo)還是WordPress站點(diǎn)。
這樣就可以解釋為何以wp-core.php命名了,并且在WordPress根目錄下也不是那么的顯眼,但是這個(gè)文件在Joomla 或者vBulletin搭建的網(wǎng)站下就顯得十分刺眼了。
wp-core.php文件很容易被安全性插件通過檢測(cè)WordPress核心完整性然后查殺。為了分散使用者的注意,該插件包含有一些能優(yōu)化WordPress的功能。
最后,最近經(jīng)常爆出WordPress插件的漏洞,希望各位在使用各種插件的時(shí)候多仔細(xì)審查,免受無妄之災(zāi)。
主題貓WP建站,累計(jì)幫助1300+客戶成功建站,為站長提供支持!
立刻開啟你的建站之旅