溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

發(fā)布時(shí)間:2021-12-22 20:48:06 來(lái)源:億速云 閱讀:138 作者:柒染 欄目:網(wǎng)絡(luò)安全

本篇文章給大家分享的是有關(guān)發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

WityCMS就是一個(gè)由creatiwiwiwiwiwity制作的CMS系統(tǒng),它幫助管理不同用途的內(nèi)容,如個(gè)人博客、商業(yè)網(wǎng)站或任何其他定制系統(tǒng)。在本文中,我將介紹如何設(shè)置CMS,查找web應(yīng)用程序問(wèn)題,以及如何復(fù)現(xiàn)CVE-2018-11512漏洞。
環(huán)境安裝(windows下安裝xampp)
  • 1.下載WityCMS0.6.1的源代碼

  • 2.把/witycms-0.6.1 目錄復(fù)制到C:\xampp\htdocs\ 下 或者是你自己安裝xampp的的htdocs目錄

  • 3.運(yùn)行Apache和MySQL然后訪問(wèn)http://localhost/phpmyadmin/index.php.

  • 4.點(diǎn)擊"databases"(中文版本的"數(shù)據(jù)庫(kù)")

  • 5.創(chuàng)建一個(gè)名為"creatiwity_cms"的數(shù)據(jù)庫(kù)

6.瀏覽器進(jìn)入http://localhost/witycms-0.6.1/ 可以查看你的程序

7.填下"Site name(站點(diǎn)名稱(chēng))"之類(lèi)的內(nèi)容,我添加了一個(gè)"Test",然后可以點(diǎn)擊next進(jìn)入下一步了

8.然后是定義系統(tǒng)的主頁(yè),你可以從選項(xiàng)中選擇任何一個(gè)。

9.接著設(shè)置數(shù)據(jù)庫(kù),第5步那里我建了一個(gè)名為"creatiwity_cms"的數(shù)據(jù)庫(kù),所以在這我們要這樣設(shè)置

10.輸入管理員賬號(hào),然后點(diǎn)擊"Launch install!(開(kāi)始安裝)"11.安裝成功后的頁(yè)面

查找漏洞

因?yàn)檫@篇文章主要是關(guān)于CVE-2018-11512的,所以我今天就只找這個(gè)程序中的持久型XSS的洞,開(kāi)始之前,我們先了解下什么是持久型XSS。
根據(jù)OWASP的介紹,"跨站腳本攻擊(xss)是一種注入類(lèi)型的攻擊手段,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁(yè)面中"。這意味著只要一個(gè)網(wǎng)站上存在注入點(diǎn),xss就可能被觸發(fā)。目前有三種類(lèi)型的XSS,但是本文我將討論常見(jiàn)的XSS,即反射型XSS和持久型XSS。
當(dāng)輸入的數(shù)據(jù)被在發(fā)出請(qǐng)求后被返回給我們時(shí),反射型XSS就會(huì)被觸發(fā)。對(duì)于反射型XSS來(lái)說(shuō),網(wǎng)站的搜索功能可以作為一個(gè)測(cè)試反射型XSS的很好的例子。當(dāng)用戶在搜索框中輸入一段payload后,該搜索功能可能會(huì)受到反射型XSS的影響。
另外,持久型XSS也被稱(chēng)為"存儲(chǔ)型XSS"。這種類(lèi)型的XSS值會(huì)被保存在系統(tǒng)中的某個(gè)數(shù)據(jù)庫(kù)或是文件中。XSS的利用點(diǎn)通常存在于可以讓用戶隨時(shí)更改的設(shè)置操作中,比如用戶的個(gè)人信息頁(yè),可以設(shè)置用戶的電子郵件,姓名,地址之類(lèi)的地方。也可能存在于用戶可以自己更改的某些系統(tǒng)設(shè)置中。
對(duì)于wityCMS,我的目標(biāo)是找到可以在系統(tǒng)中保存數(shù)據(jù)的利用點(diǎn)。這基本上可以手工完成,也可以通過(guò)工具自動(dòng)找到這些利用點(diǎn)。由于我已經(jīng)在Windows中安裝了它,所以我必須使用命令“findstr”而不是“grep”(抱歉,喜歡用"grep"的同學(xué)們)??梢栽谶@里找到"findstr"的相關(guān)信息。
惡意代碼的文件,我們可以使用以下命令:">要列出可以輸入惡意代碼的文件,我們可以使用以下命令:

/S = Recursive searching
/P = Skip files with non-printable characters
/I = Case insensitive
/N = Prints the line number
/c:<STR> = String to look for

代碼:

findstr /SPIN /c:"<input" "c:\xampp\htdocs\witycms-0.6.1*.html"

這個(gè)結(jié)果肯定很讓人驚喜,因?yàn)榭赡艽嬖赬SS的地方太多了。登錄到管理員面板后,我們可以輕松的在輸入框中輸入我們的payload。通過(guò)訪問(wèn)http://localhost/witycms-0.6.1/,我們可以看到一個(gè)很明顯的值,如圖所示:


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

我們安裝這個(gè)CMS的時(shí)候設(shè)置了這個(gè)站點(diǎn)名稱(chēng),它現(xiàn)在顯示在主頁(yè)上,不知道這個(gè)站點(diǎn)名稱(chēng)會(huì)不會(huì)存在持久型XSS,現(xiàn)在我們看看能不能在管理設(shè)置里修改這個(gè)值。
使用安裝時(shí)設(shè)置的管理員賬號(hào)密碼登錄到管理面板,登錄后,管理面板中會(huì)有一個(gè)這樣的小鏈接:


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

點(diǎn)擊"Administration"后,網(wǎng)頁(yè)會(huì)被重定向到我們安裝時(shí)的執(zhí)行設(shè)置操作的頁(yè)面,第一個(gè)設(shè)置值也是網(wǎng)站名稱(chēng)。


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

插入一個(gè)非常簡(jiǎn)單的XSS代碼試試:


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

點(diǎn)擊"save(保存)"后,返回值為:


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

可以注意到<script>和</script>標(biāo)簽被過(guò)濾了,因此我們可以知道該系統(tǒng)中存在一個(gè)防護(hù)機(jī)制,所以現(xiàn)在我們需要找到這個(gè)防護(hù)機(jī)制的運(yùn)行原理。


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

當(dāng)數(shù)據(jù)被保存到數(shù)據(jù)庫(kù)中時(shí),會(huì)處理一個(gè)請(qǐng)求。在這種情況下,我們應(yīng)該能夠識(shí)別請(qǐng)求方法是POST還是GET,在頁(yè)面空白處右鍵單擊"審查元素"查看源代碼后,可以確認(rèn)該方法是POST請(qǐng)求。


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

從這點(diǎn)來(lái)看,我們應(yīng)該嘗試找到POST請(qǐng)求發(fā)生的地方,這樣順下去我們就可以看到防護(hù)機(jī)制的運(yùn)行點(diǎn)。因此,在cmd中輸入以下命令:

findstr /SPIN /c:"$_POST" "c:\xampp\htdocs\witycms-0.6.1*.php"

這個(gè)命令類(lèi)似于我們之前查找包含“input”標(biāo)記的文件,但是這次,我們嘗試在.php文件中查找引用"$_POST"的地方。發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

因?yàn)槠渌募寂c默認(rèn)包含的庫(kù)有關(guān),這些都pass掉。所以命令的結(jié)果指向文WMain.hp,WRequest.php和WSession.php。瀏覽這些文件將我們發(fā)現(xiàn)在WRequest中有一個(gè)有趣的函數(shù)。如下所示,當(dāng)防護(hù)機(jī)制發(fā)現(xiàn)腳本標(biāo)示符時(shí),這些標(biāo)示符將被一個(gè)空字符串替換:發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

由于過(guò)濾器函數(shù)沒(méi)有遞歸,所以過(guò)濾器只能攔截這樣的輸入:


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

所以輸入這種內(nèi)容是可以繞過(guò)過(guò)濾器的:


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

在我們?cè)O(shè)置站點(diǎn)名稱(chēng)的輸入框中輸入以下內(nèi)容,我們將會(huì)得到以下結(jié)果:


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

一旦這個(gè)payload被設(shè)置為站點(diǎn)名稱(chēng),訪問(wèn)網(wǎng)站的用戶將會(huì)觸發(fā)這個(gè)腳本,即使TA并沒(méi)有經(jīng)過(guò)身份驗(yàn)證。


發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析

這就開(kāi)啟了新世界的大門(mén),因?yàn)楫?dāng)用戶訪問(wèn)網(wǎng)站時(shí)會(huì)執(zhí)行某些惡意腳本可能會(huì)造成比較嚴(yán)重的后果。比如可以將用戶重定向到釣魚(yú)站點(diǎn),在用戶不知情的情況下執(zhí)行礦機(jī)腳本,或者其他很多操作。

處理CVE編號(hào)

由于這個(gè)bug容易引起安全問(wèn)題,并且這個(gè)CMS正在被數(shù)以千計(jì)的人使用,所以我決定給這個(gè)程序申請(qǐng)一個(gè)CVE編號(hào),以此來(lái)獲得一個(gè)公開(kāi)的CVE條目。
信息安全漏洞或者已經(jīng)暴露出來(lái)的弱點(diǎn)給出一個(gè)公共的名稱(chēng)。cnas(cve-numbering-authorities)根據(jù)程序類(lèi)型分別處理這些cve編號(hào)的漏洞。例如,如果聯(lián)想設(shè)備中發(fā)現(xiàn)了安全問(wèn)題,應(yīng)該向聯(lián)想的產(chǎn)品安全應(yīng)急響應(yīng)團(tuán)隊(duì)報(bào)告,在評(píng)估了漏洞后,他們將會(huì)給這個(gè)漏洞一個(gè)cve編號(hào)。">CVE 的英文全稱(chēng)是"Common Vulnerabilities & Exposures",CVE就好像是一個(gè)字典表,為廣泛認(rèn)同的計(jì)算機(jī)信息安全漏洞或者已經(jīng)暴露出來(lái)的弱點(diǎn)給出一個(gè)公共的名稱(chēng)。CNAs(CVE Numbering Authorities)根據(jù)程序類(lèi)型分別處理這些CVE編號(hào)的漏洞。例如,如果聯(lián)想設(shè)備中發(fā)現(xiàn)了安全問(wèn)題,應(yīng)該向聯(lián)想的產(chǎn)品安全應(yīng)急響應(yīng)團(tuán)隊(duì)報(bào)告,在評(píng)估了漏洞后,他們將會(huì)給這個(gè)漏洞一個(gè)CVE編號(hào)。
這說(shuō)明,如果同樣是在CNA公司的產(chǎn)品或項(xiàng)目中發(fā)現(xiàn)了漏洞,他們?cè)u(píng)估后可以直接給出一個(gè)CVE編號(hào),在CNAs的CVE的漏洞列表中可以通過(guò)編號(hào)直接找到這個(gè)漏洞。而對(duì)于wityCMS, CreatiWity這兩個(gè)產(chǎn)品,其創(chuàng)建者沒(méi)有注冊(cè)到CNA,所以我們可以向MITRE公司申請(qǐng)這個(gè)持久型XSS漏洞的CVE編號(hào),下面是處理CVE漏洞事件的步驟:
  • 1.確認(rèn)產(chǎn)品是否由CNA管理。如果由CNA管理,則報(bào)告該特定CNA的漏洞。如果不是,則報(bào)告給MITRE公司。

  • 2.通過(guò)google確認(rèn)發(fā)現(xiàn)的漏洞是否已經(jīng)分配了一個(gè)CVE編號(hào)。經(jīng)常檢查產(chǎn)品更新,以確認(rèn)漏洞是否已經(jīng)公開(kāi)。

  • 3.對(duì)于wityCMS的情況,我使用了MITRE公司的CVE申請(qǐng)表單,可以在這里找到。

  • 4.在表格中填寫(xiě)所需的詳細(xì)信息。關(guān)于wityCMS的這個(gè)漏洞,我是這樣填的:

  • Vulnerability Type: Cross-Site Scripting

  • (漏洞類(lèi)型:xss)

  • Product: wityCMS

  • (廠商:wityCMS)

  • Version: 0.6.1

  • (版本:0.6.1)

  • Vendor confirmed the vulnerability? No (Not acknowledged yet at the time - of request)

  • 廠商是否已確認(rèn)該漏洞 沒(méi)有 (漏洞提交時(shí)廠商未確認(rèn))

  • Attack Type: Remote

  • 攻擊類(lèi)型:遠(yuǎn)程

  • Impact: Code execution

  • (影響:代碼執(zhí)行)

  • Affected Components: Source code files showing “site_title” as output

  • 受影響的組件:輸出"site_title"的源文件

  • Attack Vector: To exploit the vulnerability, one must craft and enter a script in the Site name field of the system

  • 攻擊方式:必須在系統(tǒng)的站點(diǎn)名稱(chēng)字段中手工注入腳本

  • Suggested Description: Stored cross-site scripting (XSS) vulnerability in the "Website's name" field found in the "Settings" page under the "General" menu in Creatiwity wityCMS 0.6.1 allows remote attackers to inject arbitrary web script or HTML via a crafted website name by doing an authenticated POST HTTP request to admin/settings/general.

  • 漏洞詳情:在creatiwitycms 0.6.1的“設(shè)置”菜單下的“網(wǎng)站名稱(chēng)”字段中存在存儲(chǔ)型XSS漏洞,允許遠(yuǎn)程攻擊者通過(guò)一個(gè)經(jīng)過(guò)驗(yàn)證的POST HTTP請(qǐng)求向admin/ Settings / General注入任意的web腳本或HTML。

  • Discoverer: Nathu Nandwani

  • (發(fā)現(xiàn)者:Nathu Nandwani)

  • Reference(s): https://github.com/Creatiwity/wityCMS/issues/150, https://github.com/Creatiwity/wityCMS/co...229147de44


為了讓CVE處理的更快一些,描述中最好引用一些可以輔助理解漏洞的資料,并且詳細(xì)地描述漏洞細(xì)節(jié),如果可以,還應(yīng)該寫(xiě)上漏洞可能有的修復(fù)方案。例如,在發(fā)送報(bào)告之前,我在這個(gè)項(xiàng)目的GitHub主頁(yè)上發(fā)現(xiàn)了這個(gè)漏洞可能存在的點(diǎn),因?yàn)橛泻芏嘁呀?jīng)公開(kāi)的關(guān)于存儲(chǔ)型XSS的CVE漏洞,我找了其中的一個(gè)作為參考,然后通過(guò)這個(gè)漏洞想到了構(gòu)造一個(gè)存儲(chǔ)型XSS方法,并且注意到在這個(gè)GitHub項(xiàng)目中可能通過(guò)這個(gè)方法復(fù)現(xiàn)這個(gè)漏洞。
最后一點(diǎn)小貼士
  1. 如果細(xì)節(jié)已經(jīng)公開(kāi),那么CVE號(hào)處理只需要一兩天,所以最好先與開(kāi)發(fā)人員或與項(xiàng)目相關(guān)的響應(yīng)團(tuán)隊(duì)進(jìn)行溝通,以便進(jìn)行適當(dāng)?shù)男迯?fù)。

  2. CVE漏洞的細(xì)節(jié)應(yīng)該是準(zhǔn)確的。更改發(fā)送給CNAs的報(bào)告的細(xì)節(jié)將減慢審核的速度,這意味著必須首先確認(rèn)漏洞,不要浪費(fèi)雙方的時(shí)間。

  3. 更多關(guān)于CVE漏洞提交的細(xì)節(jié)可以在這里找到。

  4. VulDB提供漏洞公開(kāi)服務(wù)。注冊(cè)一個(gè)VulDB賬號(hào),你可以在那里提交一個(gè)條目。例如,這里是這個(gè)安全問(wèn)題的VulDB條目。

  5. 也可以提交到exploit-db.com。這不僅顯示出問(wèn)題確實(shí)存在,而且還為CVE編號(hào)增加了可信的參考,因?yàn)榘踩珗F(tuán)隊(duì)盡其所能地測(cè)試驗(yàn)證漏洞是否存在。這里是一個(gè)exploit-db.com條目,請(qǐng)注意它目前正在等待驗(yàn)證。提交說(shuō)明可以在這里找到

以上就是發(fā)現(xiàn)CVE-2018-11512-wityCMS 0.6.1 持久型XSS的示例分析,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI