溫馨提示×

溫馨提示×

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

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

CMS從CSRF到Getshell的示例分析

發(fā)布時(shí)間:2021-12-16 18:18:12 來源:億速云 閱讀:289 作者:柒染 欄目:安全技術(shù)

CMS從CSRF到Getshell的示例分析,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

寫在前:

最近準(zhǔn)備看一下代碼執(zhí)行相關(guān)漏洞,日常逛cnvd時(shí)發(fā)現(xiàn)一個(gè)和代碼執(zhí)行有關(guān)的漏洞如下圖所示。

CMS從CSRF到Getshell的示例分析

看了一眼這個(gè)漏洞的簡介這個(gè)是一個(gè)比較小眾的CMS,加之這個(gè)馬賽克,這明顯是瘋狂暗示去分析一下這個(gè)漏洞。

環(huán)境搭建:

我使用的是該cms1.0 +ache2.4.39+PHP Version 5.6.9,該cms只能使用php5.x,不支持最新版的PHP。

傻瓜式安裝,安裝成功之后入下圖所示。

CMS從CSRF到Getshell的示例分析

在CNVD的漏洞詳情里明確說是后臺的漏洞,所以我們直接查看后臺的代碼。根據(jù)神打碼的提示,定位到相關(guān)的文件

CMS從CSRF到Getshell的示例分析

該文件內(nèi)容很少,漏洞也相當(dāng)明顯。

一開始注意到了這里插入了php代碼,沒有過濾。

CMS從CSRF到Getshell的示例分析

然后去查了一下php echo函數(shù)后怎么執(zhí)行代碼

CMS從CSRF到Getshell的示例分析

不過好像并沒有找到echo函數(shù)執(zhí)行代碼的方式。返回去上面重新看一下代碼,發(fā)現(xiàn)這里將用戶的輸入寫入了一個(gè)文件中。

CMS從CSRF到Getshell的示例分析

前臺輸入之后

CMS從CSRF到Getshell的示例分析

找到Ping.php文件,發(fā)現(xiàn)直接寫入了一個(gè)沒有任何權(quán)限校驗(yàn)的文件中。不過漏洞有些雞肋就是輸入點(diǎn)在后臺。

CMS從CSRF到Getshell的示例分析

可以嘗試結(jié)合一下其他的漏洞使得這個(gè)漏洞的可用性提高。翻了一下整個(gè)源碼,發(fā)現(xiàn)這個(gè)系統(tǒng)并沒有防止CSRF漏洞的措施,我們可以CSRF來組合利用。

構(gòu)造一個(gè)CSRF界面

<html>

 <!-- CSRF PoC - generated by Burp Suite Professional -->

 <body>

 <script>history.pushState('', '', '/')</script>

   <formaction="http://www.test.com/sea/72vlt3/admin_ping.php?action=set"method="POST">

     <input type="hidden" name="weburl"value="&amp#63;&ampgt;&amp#59;1" />

     <input type="hidden" name="token"value="123456789" />

     <input type="submit" value="Submit request" />

   </form>

 </body>

</html>

CMS從CSRF到Getshell的示例分析

可以成功觸發(fā)

CMS從CSRF到Getshell的示例分析

插入payload,可以在未授權(quán)的情況下直接命令執(zhí)行。

CMS從CSRF到Getshell的示例分析

延伸一下,其實(shí)這個(gè)問題屬于全局性的。另兩個(gè)點(diǎn)

CMS從CSRF到Getshell的示例分析

這里同樣直接將用戶的輸入直接保存到了沒有任何權(quán)限校驗(yàn)的文件中。

CMS從CSRF到Getshell的示例分析

CMS從CSRF到Getshell的示例分析

CMS從CSRF到Getshell的示例分析

修復(fù)建議:

1,在數(shù)據(jù)包中添加隨機(jī)token,防止CSRF漏洞的發(fā)生,這樣在一定程度上可以降低風(fēng)險(xiǎn)。

2,前端用戶的輸入內(nèi)容不要輸入到文件中,使用數(shù)據(jù)庫進(jìn)行保存。

3,其實(shí)這一種方法比較“偷懶”,將生成的文件以隨機(jī)字符串的方式命名,并且以txt后綴名結(jié)尾。

關(guān)于CMS從CSRF到Getshell的示例分析問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

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

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

AI