【安全漏洞】某CMS后台防护逻辑漏洞导致GETSHELL
源碼:
https://cdn.jsdelivr.net/gh/seacms-net/CMS@master/SeaCMS.zip
→點(diǎn)擊查看網(wǎng)絡(luò)安全學(xué)習(xí)資料·攻略←
1.2000多本網(wǎng)絡(luò)安全系列電子書
2.網(wǎng)絡(luò)安全標(biāo)準(zhǔn)題庫資料
3.項(xiàng)目源碼
4.網(wǎng)絡(luò)安全基礎(chǔ)入門、Linux、web安全、攻防方面的視頻
5.網(wǎng)絡(luò)安全學(xué)習(xí)路線圖
漏洞分析:
打開我們下載的源碼
漏洞源頭為“圖片水印設(shè)置”功能,對應(yīng)的源碼文件為admin_config_mark.php
當(dāng)我們后臺使用圖片設(shè)置功能時(shí)
點(diǎn)擊提交之后,這里首先調(diào)用了admin_config_mark.php文件,而這個(gè)文件的開頭加載了全局文件
繼續(xù)跟進(jìn)config.php,這個(gè)文件中又引入了common.php
繼續(xù)跟進(jìn)common.php文件
此時(shí)我們找到了最終加載的文件,而這個(gè)文件的功能是對全局的變量進(jìn)行過濾防護(hù)。
這里最終調(diào)用的函數(shù)為_FilterAll
將參數(shù)傳入之后,框架會對每個(gè)參數(shù)使用addslashes函數(shù)進(jìn)行轉(zhuǎn)義,原本我們傳入1’變?yōu)榱?’,接著來到admin/admin_config_mark.php文件
這里就出現(xiàn)了處理參數(shù)的邏輯錯(cuò)誤。對全局轉(zhuǎn)義過的參數(shù)又進(jìn)行了一次替換操作,使用了str_replace函數(shù)將全部的單引號替換成了空,所以1’就變成了1\,此時(shí)字符串進(jìn)行了拼接。
然后緊著這把字符串寫入了配置文件中
此時(shí)配置文件中寫入的數(shù)據(jù)如下,這就導(dǎo)致了將原本的單引號轉(zhuǎn)義掉了。此處我們就可以寫入任意代碼了。
最后
私我獲取【網(wǎng)絡(luò)安全技術(shù)學(xué)習(xí)資料·攻略】
總結(jié)
以上是生活随笔為你收集整理的【安全漏洞】某CMS后台防护逻辑漏洞导致GETSHELL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从一个被Tomcat拒绝的漏洞到特殊内存
- 下一篇: 一次内网靶场学习记录