国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > Wordpress > 正文

WordPress站長注意了,網(wǎng)曝未經(jīng)授權(quán)的密碼重置漏洞

2024-09-07 00:52:29
字體:
供稿:網(wǎng)友

WordPress是一種使用PHP語言開發(fā)的博客平臺,用戶可以在支持PHP和MySQL數(shù)據(jù)庫的服務(wù)器上架設(shè)屬于自己的網(wǎng)站。也可以把 WordPress當(dāng)作一個(gè)內(nèi)容管理系統(tǒng)(CMS)來使用。

WordPress是一款個(gè)人博客系統(tǒng),并逐步演化成一款內(nèi)容管理系統(tǒng)軟件,它是使用PHP語言和MySQL數(shù)據(jù)庫開發(fā)的。用戶可以在支持 PHP 和 MySQL數(shù)據(jù)庫的服務(wù)器上使用自己的博客。

WordPress有許多第三方開發(fā)的免費(fèi)模板,安裝方式簡單易用。不過要做一個(gè)自己的模板,則需要你有一定的專業(yè)知識。比如你至少要懂的標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)應(yīng)用HTML代碼、CSS、PHP等相關(guān)知識。

WordPress官方支持中文版,同時(shí)有愛好者開發(fā)的第三方中文語言包,如wopus中文語言包。WordPress擁有成千上萬個(gè)各式插件和不計(jì)其數(shù)的主題模板樣式。

WordPress作為歐美流行的博客建站系統(tǒng),被廣大中國用戶使用的同時(shí)也驚現(xiàn)出一系列的安全問題,一下是最新曝出的安全漏洞。

一、漏洞

WordPress內(nèi)核<= 4.7.4存在未經(jīng)授權(quán)的密碼重置(0day)

二、背景

WordPress是一個(gè)以PHP和MySQL為平臺的自由開源的博客軟件和內(nèi)容管理系統(tǒng)。截止2017年2月,Alexa排名前1000萬的站點(diǎn)中約有27.5%使用該管理系統(tǒng)。據(jù)報(bào)道有超過6000萬站點(diǎn)使用WordPress進(jìn)行站點(diǎn)管理或者作為博客系統(tǒng)。

三、介紹

WordPress的重置密碼功能存在漏洞,在某些情況下不需要使用之前的身份令牌驗(yàn)證獲取密碼重置鏈接。

該攻擊可導(dǎo)致攻擊者在未經(jīng)授權(quán)的情況下獲取用戶Wordpress后臺管理權(quán)限。

四、描述

該漏洞源于WordPress默認(rèn)使用不可信的數(shù)據(jù)。當(dāng)生成一個(gè)密碼重置郵件時(shí)應(yīng)當(dāng)是僅發(fā)送給與帳戶相關(guān)聯(lián)的電子郵件。

從下面的代碼片段可以看出,在調(diào)用PHP mail()函數(shù)前創(chuàng)建了一個(gè)From email頭

  1. ------[ wp-includes/pluggable.php ]------   
  2. ... 
  3.  
  4. if ( !isset( $from_email ) ) { 
  5.  
  6. // Get the site domain and get rid of www. 
  7.  
  8. $sitename = strtolower$_SERVER['SERVER_NAME'] ); 
  9.  
  10. if ( substr$sitename, 0, 4 ) == 'www.' ) { 
  11.  
  12. $sitename = substr$sitename, 4 ); 
  13.  
  14.  
  15. $from_email = 'wordpress@' . $sitename
  16.  
  17.  
  18. ... 
  19.  
  20. ----------------------------------------- 

正如我們所看到的,Wordpress為了生成重置郵件創(chuàng)建的一個(gè)From/Return-Path(發(fā)件人/收件人)頭,使用SERVER_NAME變量以獲取服務(wù)器的主機(jī)名。

然而,諸如Apache的主流web服務(wù)器默認(rèn)使用由客戶端提供的主機(jī)名來設(shè)置SERVER_NAME變量(參考Apache文檔)

由于SERVER_NAME可以進(jìn)行修改,攻擊者可以任意設(shè)置該值,例如attackers-mxserver.com

這將導(dǎo)致Wordpress的$from_email變?yōu)閣ordpress@attackers-mxserver.com,最終導(dǎo)致包含F(xiàn)rom/Return-Path(發(fā)件人/收件人)設(shè)置的密碼重置郵件發(fā)送到了該惡意郵件地址。

至于攻擊者可以修改哪那一封電子郵件的頭信息,這取決于服務(wù)器環(huán)境(參考PHP文檔)

基于郵件服務(wù)器的配置,可能導(dǎo)致被修改過郵件頭的惡意收件人/發(fā)件人地址的電子郵件發(fā)送給WordPress用戶。

這使得攻擊者能夠在不需要進(jìn)行交互就可以截取本該是需要進(jìn)行交互才能進(jìn)行的操作的密碼重置郵件。

攻擊場景:

如果攻擊者知道用戶的電子郵件地址。為了讓密碼重置郵件被服務(wù)器拒收,或者無法到達(dá)目標(biāo)地址。他們可以先對用戶的電子郵件帳戶進(jìn)行DoS攻擊(通過發(fā)送多個(gè)超過用戶磁盤配額的大文件郵件或攻擊該DNS服務(wù)器)

某些自動回復(fù)可能會附加有郵件發(fā)送副本

發(fā)送多封密碼重置郵件給用戶,迫使用戶對這些沒完沒了的密碼重置郵件進(jìn)行回復(fù),回復(fù)中就包含的密碼鏈接會發(fā)送給攻擊者。

五、POC

如果攻擊者將類似下面的請求發(fā)送到默認(rèn)可通過IP地址訪問的Wordpress安裝頁面(IP-based vhost):

  1. -----[ HTTP Request ]---- 
  2.  
  3.  
  4. POST /wp/wordpress/wp-login.php?action=lostpassword HTTP/1.1 
  5.  
  6. Host: injected-attackers-mxserver.com 
  7.  
  8. Content-Type: application/x-www-form-urlencoded 
  9.  
  10. Content-Length: 56 
  11.  
  12.  
  13. user_login=admin&redirect_to=&wp-submit=Get+New+Password 

WordPress將觸發(fā)管理員賬戶的密碼重置功能

由于修改了主機(jī)頭,SERVER_NAME變量將被設(shè)置為攻擊者所選擇的主機(jī)名,因此Wordpress會將以下電子郵件頭信息和正文傳遞給/usr/bin/sendmail

  1. ------[ resulting e-mail ]----- 
  2.  
  3.  
  4. Subject: [CompanyX WP] Password Reset 
  5.  
  6. Return-Path: 
  7.  
  8. From: WordPress 
  9.  
  10. Message-ID: 
  11.  
  12. X-Priority: 3 
  13.  
  14. MIME-Version: 1.0 
  15.  
  16. Content-Type: text/plain; charset=UTF-8 
  17.  
  18. Content-Transfer-Encoding: 8bit 

有人請求將以下賬戶的密碼進(jìn)行重置:

http://companyX-wp/wp/wordpress/

Username: admin

如果是弄錯(cuò)了,直接忽略該郵件就好,重置密碼請?jiān)L問以下地址:

companyx-wp/wp/wordpress/wp-login.php?action=rp&key=AceiMFmkMR4fsmwxIZtZ&login=admin>

正如我們看到的,Return-Path, From, 以及Message-ID字段都是攻擊者控制的域

通過bash腳本替換/usr/sbin/sendmail以執(zhí)行頭的驗(yàn)證:

#!/bin/bash

cat > /tmp/outgoing-email

六、業(yè)務(wù)影響

在利用成功的基礎(chǔ)上,攻擊者可重置用戶密碼并且未經(jīng)授權(quán)獲取WordPress賬戶訪問權(quán)限。

七、系統(tǒng)影響

WordPress至最新版本4.7.4全部受影響

八、解決方案

目前沒有官方解決方案可用。作為臨時(shí)解決方案,用戶可以啟用UseCanonicalName執(zhí)行SERVER_NAME靜態(tài)值(參考Apache)

在這里小編來分享一下wordpress建站過程中,可以有效提高其安全性的方法:

以下是我所做的變更,用來提高我的 WordPress 網(wǎng)站安全性,縱使這樣的意外可能再次發(fā)生。

#1 使用你的 Email 作為登入帳號

當(dāng)你安裝完一個(gè) WordPress 網(wǎng)站時(shí),預(yù)設(shè)的第一位用戶為 “admin”。你應(yīng)該建立不同的使用者名稱來管理你的 WordPress 網(wǎng)站,并將預(yù)設(shè)使用者 “admin” 刪除,或是將它的權(quán)限從「系統(tǒng)管理員」降級為「讀者」。

你也可以建立一個(gè)完全亂數(shù)(難以被猜中)的使用者名稱,然后使用你的 Email 來登入 WordPress。外掛 WP-Email Login 可以加入此支援,使用你的 Email 取代帳號登入。

#2 不要向全世界展示你的 WordPress 版本

WordPress 網(wǎng)站會在原始碼顯示版本號,讓其他人能夠知道你正在執(zhí)行舊的 WordPress。

要從網(wǎng)頁里移除 WordPress 版本是狠簡單的一件事,但你需要做一些額外的補(bǔ)強(qiáng),從你的 WordPress 目錄將 readme.html 檔案刪除,因?yàn)樗矔涯闼褂玫?WordPress 版本展示給全世界。

#3 別讓其他人擁有”寫入”你 WordPress 目錄的權(quán)限

登入你的 WordPress 網(wǎng)站 Linux 系統(tǒng)列,執(zhí)行以下指令來取得所有「公開」、其他用戶皆能寫入的目錄清單。

find . -type d -perm -o=w

你也許可以執(zhí)行以下兩行指令,來將你 WordPress 內(nèi)的檔案和目錄設(shè)定為正確的權(quán)限(參考資料)。

find /your/wordpress/folder/ -type d -exec chmod 755 {} /;

find /your/wordpress/folder/ -type f -exec chmod 644 {} /;

對目錄來說,755(rwxr-xr-x) 意味著只有擁有者具備寫入權(quán)限,其他人只有讀取和執(zhí)行的權(quán)限。對檔案來說,644 (rw-r–r–) 意味著只有檔案擁有者具備讀取和寫入權(quán)限,其他人為唯讀。

#4 重新命名你的 WordPress 資料表前綴

如果你使用預(yù)設(shè)選項(xiàng)來安裝 WordPress 的話,你的 WordPress 資料表應(yīng)該會像是 wp_posts 或 wp_users。將資料表的前綴(wp_)更改為其他隨機(jī)值是比較好的作法,外掛2Change DB Prefix2可以讓你在彈指之間重新命名你的資料表前綴。

#5 防止使用者瀏覽你的 WordPress 目錄結(jié)構(gòu)

這狠重要。開啟你 WordPress 根目錄底下的 .htaccess 檔案,然后在最上方加入這行。

Options -Indexes

這能夠防止其他人在能建立檔案清單時(shí)看到你資料夾內(nèi)的所有檔案。例如目錄下缺少預(yù)設(shè)的 index.PHP 或 index.html 時(shí)。

#6 更新 WordPress 安全密鑰

開啟此網(wǎng)頁來為你的 WordPress 網(wǎng)站產(chǎn)生八組安全密鑰。開啟 WordPress 目錄下的 wp-config.php 檔案,將預(yù)設(shè)的密鑰以產(chǎn)生的密鑰取而代之。

這些隨機(jī)的字串能使你儲存于 WordPress 的密碼更加安全,另一個(gè)好處是,當(dāng)有人在你不知情的情抗下登入 WordPress,他們將會被立即登出,使他們的 cookies 失效。

#7 保留 WordPress PHP 和資料庫錯(cuò)誤記錄

從錯(cuò)誤記錄有時(shí)候可以發(fā)現(xiàn)針對你 WordPress 所發(fā)出的無效資料庫查詢或檔案查詢。我更喜歡外掛 Error Log Monitor,因?yàn)樗芏ㄆ谕高^ Email 發(fā)送錯(cuò)誤日志到你的信箱,也能顯示于你的 WordPress 控制臺。

要在 WordPress 啟用錯(cuò)誤日志功能,將以下程式碼加入你的 wp-config.php 檔案,記得要把2/path/to/error.log 替換為你的日志文件實(shí)際路徑。error.log 應(yīng)該放在無法直接從瀏覽器存取得到的目錄。(參考資料)

  1. define('WP_DEBUG', true); 
  2.  
  3. if (WP_DEBUG) { 
  4.  
  5. define('WP_DEBUG_DISPLAY', false); 
  6.  
  7. @ini_set('log_errors''On'); 
  8.  
  9. @ini_set('display_errors''Off'); 
  10.  
  11. @ini_set('error_log''/path/to/error.log'); 
  12.  

#8 以密碼保護(hù) Admin 控制臺

使用密碼來保護(hù) wp-admin 目錄是一個(gè)不錯(cuò)的方法,因?yàn)闉g覽你的公開 WordPress 網(wǎng)站并不需要用到這目錄下的任何檔案。一旦設(shè)定完成,即使是授權(quán)的用戶也需要輸入兩道密碼才能登入他們的 WordPress 控制臺。

#9 追蹤你的 WordPress 服務(wù)器登入動態(tài)

你可以在 linux 下使用 “last -i” 指令來列出所有登入你 WordPress 服務(wù)器的使用者,包括他們的 IP 位址。如果你發(fā)現(xiàn)清單內(nèi)有未知的 IP 來源,那肯定要修改密碼了。

此外,下面的指令將顯示較長時(shí)間區(qū)間的登入動態(tài),并使用 IP 位址分組(將 USERNAME 改為你的使用者名稱)。

last -if /var/log/wtmp.1 | grep USERNAME | awk 1{print $3}1 | sort | uniq -c

使用外掛來監(jiān)控你的 WordPress 網(wǎng)站

WordPress.org 外掛庫包含不少好用的安全相關(guān)外掛,可以持續(xù)監(jiān)控你的 WordPress 網(wǎng)站是否有被入侵,或是其他可疑活動。這些是我會建議使用,也較為基本的安全外掛。

Exploit Scanner – 它會迅速掃描你的所有 WordPress 檔案和文章,并列出潛藏惡意程式碼的。例如垃圾鏈結(jié)可能會使用 CSS 或 IFRAME 方式隱藏在你的 WordPress 網(wǎng)志文章里,而這個(gè)外掛可以將它們找出來。

WordFence Security – 這是一個(gè)非常強(qiáng)大、且應(yīng)該使用的安全外掛。它會比對你 WordPress 的核心檔案和原始檔案間是否已被修改。而且,該外掛會鎖定嘗試登入你的網(wǎng)站卻失敗的使用者。

WordPress Sentinel – 另一個(gè)實(shí)用的外掛,可以監(jiān)控你的 WordPress 檔案,當(dāng)有任何檔案被加入、刪除或修改時(shí)會發(fā)出警告。

WP Notifier – 如果你不常登入你的 WordPress 控制臺,那這外掛適合你。它會在你安裝的背景主題、外掛和 WordPress 核心有新的更新時(shí)以 Email 通知你。

VIP Scanner – “官方”安全外掛將掃描你的 WordPress 背景主題有無任何問題,它也能檢測出有無任何的廣告程式碼被注入你的 WordPress 背景主題里。

小技巧:你也可以使用以下 Linux 指令來列出近三天被修改的檔案清單。將 mtime 改為 mmin 可以看到 “n” 分鐘前被修改的檔案清單。

find . -type f -mtime -3 | grep -v "/Maildir/" | grep -v "/logs/"

提高 WordPress 登入頁面安全性

你的 WordPress 登入頁面是每個(gè)人都可以存取的,但如果你想防止未授權(quán)的使用者登入 WordPress,你有以下三種選擇。

使用 .htaccess 加入密碼保護(hù) – 在 WordPress 認(rèn)證以外加入另一道帳號密碼來保護(hù)你的 wp-admin 目錄。

Google Authenticator – 這出色的外掛能為你的 WordPress 加入兩步驟驗(yàn)證功能。除了輸入正確的密碼外,還必須搭配手機(jī)應(yīng)用程式來輸入隨機(jī)產(chǎn)生的驗(yàn)證碼。

Login Dongle – 這個(gè)外掛使用一個(gè)非常獨(dú)特的方法來保護(hù)你的 WordPress。它能產(chǎn)生一個(gè)書籤列(加上秘密問題),你可以將它加入瀏覽器。當(dāng)你要登入 WordPress 時(shí),輸入你的密碼並按下書籤列才能登入 WordPress – 登入頁面的按鈕將無法使用。

WP的優(yōu)劣

WordPress是一款風(fēng)靡全球的博客網(wǎng)站程序,這點(diǎn)毋容置疑。大量的主題,大量的插件,大量的API,極高的可定制性。

對于60%菜鳥來說,下個(gè)主題馬上網(wǎng)站就可以上線。就可以拿著網(wǎng)站到處炫耀,嘿!我TMD的有網(wǎng)站。 這是我的名片。就可以宣傳推廣了,是不是很方便。馬上進(jìn)入SEO環(huán)節(jié)(SEO 有事一個(gè)吹比行業(yè),能吹3天3夜)

作為30%中級玩家,你可以研究研究怎么用各種主題和插件讓網(wǎng)站更漂亮,功能更強(qiáng)大; 就是寫寫HTML CSS JQ。我稱呼為 熟練運(yùn)用各種JQ插件的人。呵呵,不是看不起,是因?yàn)镴Q只適合PC端,雖然手機(jī)端也出JQM,但沒繼承JQ輝煌,JQ已經(jīng)十年了,就跟WINXP一樣,注定退場! (但是用戶最直接看到也是表現(xiàn)層 所以各種打著WP賺錢的人 也都停留在這個(gè)層面,水平一般般還指望一筆模板生意暴富人都在淘寶開店)

作為10%高級玩家,你可以編寫插件,制作主題;作為終級玩家,你可以使用WordPress做到任何你想要的網(wǎng)站。當(dāng)然別說對于WP,任何PHP程序都可以改造成自己想要的網(wǎng)站。因?yàn)橛屑夹g(shù)懂一門后端語言,什么都不是問題。當(dāng)然對于這部分人 肯定不會局限于WP。當(dāng)然質(zhì)量如何,每個(gè)人水平不一樣,人品如何。同樣無法保證,尤其在國內(nèi) 傻子多,騙子也多。

有人說WP慢 確實(shí)慢,但也不慢,為什么?

這個(gè)的根本并不在于程序本身,而在于你的附加需求。自己愛折騰,愛鐵血,安裝N多插件,N多復(fù)雜的主題,造成數(shù)據(jù)量巨多,這能怪誰呢?而那些主題和插件的制作者,你無法讓他們每一個(gè)人寫出的主題或插件都是完美的,如果你希望變成這樣,那只能你自己動手了。

那些訪問量真正上百萬上千萬級別的網(wǎng)站,哪一個(gè)不是經(jīng)過自己對網(wǎng)站做了大量優(yōu)化的?

這里就引用別人的話(上面這段出處 蘆XX的博客,搞SEO不醉看他博客)

所以SEO做的好不好,跟程序無關(guān),你用靜態(tài)頁面也可以,單頁面也可以,跟模板關(guān)系不大。為什么這個(gè)有過親生案例。SEO如何做,怎么做。如果你還是停留在發(fā)帖,論壇,我們就不要探討了。 你天天去李彥宏問 百度搜索如何做,李會搭理你嗎? 不是閑你煩,是太累。

服務(wù)器方面

云是趨勢,不要用云為什么,看到很多童鞋說用云就被關(guān)閉了如何如何。云計(jì)算這個(gè)東西,在國內(nèi)發(fā)展也才這幾年,實(shí)話我也經(jīng)歷過,國家都是給企業(yè)補(bǔ)貼,所以各大BAT都來搞云。拿著國家補(bǔ)貼做出來東西能好嗎?賺了國家補(bǔ)貼一筆,又來賺你們一筆,真是呵呵。 再來給你們768 256內(nèi)存,XXX大硬盤,結(jié)果來個(gè)1M帶寬,到這里想想就笑了,任何網(wǎng)站多幾個(gè)人打開,如果的模板特效各種插件圖片比較多,由于各種蜘蛛在爬,那不直接就超過1M帶寬峰值,被封是注定的!

用專業(yè)的話說 云服務(wù)器實(shí)際的網(wǎng)絡(luò)吞吐量如何,這些決定直接影響你的應(yīng)用性能!不管你用4vCPU和8GBRAM 還是16CPU 32GRAM都沒什么卵用,因?yàn)槟銕挿逯抵挥?M。你以為大企業(yè)省錢 選擇安全可靠,往往大企業(yè)才是最坑人的。老話叫店大欺客。想省錢不如租用 口碑好國外主機(jī) CDN到國內(nèi)。或者是 國內(nèi)主機(jī)+CDN。 那個(gè)國內(nèi)外主機(jī)那家好,這里不介紹,坑踩的多了人才會成長。

再次引用別人的話

WordPress仍然是這個(gè)世界上首屈一指的獨(dú)立博客網(wǎng)站程序,我并不是說其他博客程序不好,各有各的優(yōu)點(diǎn),有的博客程序更本地化,使用方式和語義等更適合中國用戶等等。如何選擇,見仁見智。但我希望的是,不要用片面的理念和單純的說法來忽悠小白,不要因?yàn)槟阕约旱脑蚨プ寗e人也跟著你那樣認(rèn)為。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 株洲市| 文山县| 鹰潭市| 武隆县| 德保县| 谷城县| 岚皋县| 沾化县| 多伦县| 昌宁县| 迁安市| 兰西县| 济阳县| 中牟县| 信宜市| 江油市| 南充市| 荣成市| 包头市| 朝阳县| 阿克苏市| 白水县| 休宁县| 凌海市| 清镇市| 开原市| 饶河县| 景德镇市| 凉城县| 盘锦市| 时尚| 铁岭市| 崇文区| 涿州市| 涞源县| 尖扎县| 东乡县| 乐至县| 两当县| 兖州市| 博客|