亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

前言:

這篇文章:該 CMS 版本是 4.2。以下漏洞均被 CNVD 收錄。

環(huán)境說(shuō)明:

php版本用 7.0.9 就好了。

安全代碼審計(jì)-PHP

 

SSRF:

根據(jù)功能點(diǎn)定向?qū)徲?jì),在后臺(tái)的工具欄有一個(gè)采集功能,根據(jù)經(jīng)驗(yàn)這種功能一般存在 SSRF。

安全代碼審計(jì)-PHP

 


安全代碼審計(jì)-PHP

 

【一>所有資源關(guān)注我,私信回復(fù)"資料"獲取<一】
1、網(wǎng)絡(luò)安全學(xué)習(xí)路線
2、電子書(shū)籍(白帽子)
3、安全大廠內(nèi)部視頻
4、100份src文檔
5、常見(jiàn)安全面試題
6、ctf大賽經(jīng)典題目解析
7、全套工具包
8、應(yīng)急響應(yīng)筆記

使用 Python3 在本地開(kāi)啟簡(jiǎn)易的 http 服務(wù)。

安全代碼審計(jì)-PHP

 

點(diǎn)擊下一步,果不其然存在 SSRF。

安全代碼審計(jì)-PHP

 

進(jìn)行漏洞分析。
根據(jù) burpsuite 抓到的請(qǐng)求包很容易定位到代碼位置。

安全代碼審計(jì)-PHP

 

在文件
upload/plugins/sys/admin/Collect.php#Collect->add,POST 的參數(shù)cjurl 未做安全處理被傳入到 $this->caiji->str 方法。

安全代碼審計(jì)-PHP

 

那么我們跟進(jìn)到 $this->caiji->str 方法,但是 phpstorm 找不到定義該方法的位置。

安全代碼審計(jì)-PHP

 

解決辦法,我們可以連續(xù)按兩下 Shift 鍵直接尋找。

安全代碼審計(jì)-PHP

 

跟進(jìn)到 str 方法后,發(fā)現(xiàn) url 參數(shù)被傳入 htmlall 方法,繼續(xù)跟進(jìn)該方法。

安全代碼審計(jì)-PHP

 

可以看到 htmlall 方法使用了 curl 請(qǐng)求 url。

安全代碼審計(jì)-PHP

 

基本上有調(diào)用 $this->caiji->str 方法的地方都存在 SSRF 漏洞。

安全代碼審計(jì)-PHP

 

文件覆蓋導(dǎo)致 GETSHELL:

通過(guò)敏感函數(shù)回溯參數(shù)過(guò)程的方式找到該漏洞。

upload/cscms/App/helpers/common_helper.php#write_file 使用了文件寫入的敏感函數(shù),跟 SSRF 的 htmlall 是同一個(gè)文件。

安全代碼審計(jì)-PHP

 

使用 Ctrl+Shift+F 查找哪些位置調(diào)用了 write_file,在
upload/plugins/sys/admin/Plugins.php#Plugins->_route_file 調(diào)用了 write_file函數(shù),并且 note[note[key][‘name’] 和 note[note[key][‘url’] 的值是以字符串方式拼接到文件內(nèi)容的,該內(nèi)容是注釋,我們可以使用換行繞過(guò)。

安全代碼審計(jì)-PHP

 

查找哪些位置調(diào)用了 _route_file,跟蹤 $note 的值是否可控,調(diào)用該函數(shù)的位置有很多,最終找到一處可利用。在
upload/plugins/sys/admin/Plugins.php#Plugins->setting_save 調(diào)用了 _route_file,由于該函數(shù)內(nèi)容有點(diǎn)多,所以我將它拆分成兩個(gè)界面,一些不重要的內(nèi)容進(jìn)行閉合。畫紅線的位置是調(diào)用到 _route_file 必須設(shè)置的,可以看到在標(biāo)藍(lán)色3的位置獲取到了 $note 的值,分析到這里可以開(kāi)始復(fù)現(xiàn)了。

安全代碼審計(jì)-PHP

 

使用 burpsuite 抓取請(qǐng)求包。

安全代碼審計(jì)-PHP

 

修改請(qǐng)求包內(nèi)容寫入構(gòu)造好的代碼,可以看到我使用了 %0a 換行去繞過(guò)注釋。

安全代碼審計(jì)-PHP

 


upload/cscms/config/dance/rewrite.php 可以看到成功寫入。

安全代碼審計(jì)-PHP

 

尋找引用 rewrite.php 的位置,懶得去看代碼了,通過(guò)點(diǎn)擊各個(gè)頁(yè)面,經(jīng)過(guò)不懈努力終于在個(gè)人中心的音樂(lè)頁(yè)面找到,所以你需要注冊(cè)一個(gè)會(huì)員用戶。

安全代碼審計(jì)-PHP

 

重放 burpsuite 抓到的請(qǐng)求包,成功輸出內(nèi)容。

安全代碼審計(jì)-PHP

 

到這里其實(shí)事情還沒(méi)有結(jié)束,當(dāng)我嘗試寫入惡意內(nèi)容發(fā)現(xiàn)被轉(zhuǎn)義了。

安全代碼審計(jì)-PHP

 


安全代碼審計(jì)-PHP

 

試了 eval、shell_exec 等均被轉(zhuǎn)義,但是 assert 沒(méi)有被轉(zhuǎn)義,考慮到 assert 在PHP7版本之后的問(wèn)題,我還是需要找一個(gè)更好的辦法。懶得去看轉(zhuǎn)義的代碼了,我根據(jù)PHP的動(dòng)態(tài)特性使用以下方法成功 RCE。

安全代碼審計(jì)-PHP

 


安全代碼審計(jì)-PHP

 

總結(jié):

此次代碼審計(jì)使用了通用代碼審計(jì)思路的兩種,第一種:根據(jù)功能點(diǎn)定向?qū)徲?jì)、第二種:敏感函數(shù)回溯參數(shù)過(guò)程,沒(méi)有用到的是通讀全文代碼。活用 phpstorm 可以讓代碼審計(jì)的效率大大增加。

分享到:
標(biāo)簽:代碼
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定