五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

PHP代碼審計(jì)之RCE漏洞

2021-09-16 11:56 作者:安全牛課堂  | 我要投稿

RCE漏洞全稱為遠(yuǎn)程命令/代碼執(zhí)行漏洞(英文為remote command/code execute),可以讓攻擊者直接向后臺服務(wù)器遠(yuǎn)程注入操作系統(tǒng)命令或者代碼,從而控制后臺系統(tǒng)。

本文中將對Thinkphp5.0.X代碼執(zhí)行漏洞進(jìn)行簡單的分析。


漏洞影響版本:

ThinkPHP5.0.X 代碼執(zhí)行漏洞

漏洞成因:控制器過率不嚴(yán),結(jié)合直接返回類名的代碼操作,導(dǎo)致可以用命名空間的方式來調(diào)用任意類的任意方法

影響范圍:ThinkPHP5.0.X-5.0.23

EXP:

/index.php?s=/index/\think\APP/invokefunction&function=phpinfo&vars[0]=100

/public/index.php?s=/index/\think\APP/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

一般入口文件是在站點(diǎn)根目錄下的public目錄下的index.php文件:

在框架引導(dǎo)文件中調(diào)用APP類的run函數(shù),后發(fā)現(xiàn)進(jìn)入autoload自動(dòng)加載類

發(fā)現(xiàn)代碼在尋找think\APP的類

查找think\APP類所對應(yīng)的類文件的物理路徑

途中在think\APP類文件中86行,發(fā)現(xiàn)filter過率函數(shù)(換空)

在APP類文件的103行放出可調(diào)度的信息dispatch,這個(gè)代表提交路由的狀態(tài)模式,而這個(gè)變量是由routeCheck函數(shù)返回,我們進(jìn)入routeCheck函數(shù)查看

發(fā)現(xiàn)routeCheck函數(shù)為路由檢查函數(shù),跟進(jìn)后發(fā)現(xiàn)我們提交的路由為合理路由,并沒有過濾 (path里的路徑為index/think\APP/invokefunction)

繼續(xù)往下,發(fā)現(xiàn)使用Route:parseUrl函數(shù)對路由進(jìn)行解析,將模塊/控制器/函數(shù)/參數(shù)從我們提交的路由中分離出來,分別加載

在route:parseUrl中使用ParseUrlPath對路徑由/進(jìn)行分割,發(fā)現(xiàn)我們提交的\think\APP并沒有被分割開來



繼續(xù)往下發(fā)現(xiàn)解析控制器的內(nèi)容,沒有任何過濾,這樣使得我們可以調(diào)用框架中任何控制器的類文件

往下發(fā)現(xiàn)可以任意執(zhí)行類的任意函數(shù),傳入任意參數(shù)

到現(xiàn)在位置,可以調(diào)用任意類文件中的任意函數(shù)


APP類文件的invokefunction函數(shù)中,function為我們傳入的phpinfo,這里使用到了反射類,將傳入的函數(shù)對象反射,最后通過invokeArgs執(zhí)行。

關(guān)于反射類執(zhí)行類的函數(shù):

以上內(nèi)容選自安全牛課堂《PHP代碼審計(jì)之RCE漏洞》課程

本課程您還將學(xué)習(xí)到UsualTool后臺getshell入門審計(jì)、pluck漏洞代碼、zzzphp遠(yuǎn)程代碼執(zhí)行漏洞審計(jì)、PbootCMS遠(yuǎn)程代碼執(zhí)行漏洞審計(jì)、ecshop日志文件代碼執(zhí)行漏洞審計(jì)、Empire后臺代碼執(zhí)行g(shù)etshell、Thinkphp5.0.X代碼執(zhí)行漏洞等相關(guān)漏洞代碼分析以及漏洞復(fù)現(xiàn)。

掃描下方二維碼直接跳轉(zhuǎn)至課程頁面

課程視頻地址:https://www.aqniukt.com/my/course/13995

PHP代碼審計(jì)之RCE漏洞的評論 (共 條)

分享到微博請遵守國家法律
大同县| 罗平县| 阿克苏市| 威海市| 龙井市| 盐源县| 寿宁县| 台山市| 紫阳县| 阿巴嘎旗| 五常市| 广灵县| 巨野县| 额敏县| 常德市| 东阳市| 南华县| 舞钢市| 江永县| 卓尼县| 保定市| 泸溪县| 武城县| 揭西县| 手机| 乌苏市| 含山县| 乐安县| 清水河县| 西华县| 汝城县| 百色市| 宣威市| 徐水县| 嘉祥县| 广东省| 苏尼特右旗| 抚远县| 荥阳市| 无为县| 射阳县|