成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決

本文小編為大家詳細(xì)介紹“php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

成都網(wǎng)站建設(shè)、成都做網(wǎng)站服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠(chéng)為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來(lái)開發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!

注:本文僅供參考學(xué)習(xí)

命令執(zhí)行定義
當(dāng)應(yīng)用需要調(diào)用一些外部程序去處理內(nèi)容的情況下,就會(huì)用到一些執(zhí)行系統(tǒng)命令的函數(shù)。如PHP中的system,exec,shell_exec等,當(dāng)用戶可以控制命令執(zhí)行函數(shù)中的參數(shù)時(shí),將可注入惡意系統(tǒng)命令到正常命令中,造成命令執(zhí)行攻擊。

形成原因
腳本語(yǔ)言優(yōu)點(diǎn)是簡(jiǎn)潔,方便,但也伴隨著一些問(wèn)題,如速度慢,無(wú)法解除系統(tǒng)底層,如果我們開發(fā)的應(yīng)用需要一些除去web的特殊功能時(shí),就需要調(diào)用一些外部程序。帶來(lái)方便的同時(shí)也存在威脅。

漏洞危害
繼承Web服務(wù)程序的權(quán)限去執(zhí)行系統(tǒng)命令或讀寫文件
反彈shell
控制整個(gè)網(wǎng)站甚至控制服務(wù)器
進(jìn)一步內(nèi)網(wǎng)滲透

代碼執(zhí)行與命令執(zhí)行的區(qū)別
命令執(zhí)行漏洞:
直接調(diào)用操作系統(tǒng)命令(相當(dāng)于在cmd下敲命令)
命令執(zhí)行漏洞的原理:在操作系統(tǒng)中,“&、|、||”都可以作為命令連接符使用,用戶通過(guò)瀏覽器提交執(zhí)行命令,由于服務(wù)器端沒(méi)有針對(duì)執(zhí)行函數(shù)做過(guò)濾,導(dǎo)致在沒(méi)有指定絕對(duì)路徑的情況下就執(zhí)行命令(如添加一個(gè)名為admin 密碼為admin的用戶 net user admin admin/add net localgroup administrators admin /add 加入管理員組(賦予管理員權(quán)限))

php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決

command1&command2 兩個(gè)命令同時(shí)執(zhí)行
command1&&command2 只有前面命令執(zhí)行成功,后面命令才繼續(xù)執(zhí)行
command1;command2 不管前面命令執(zhí)行成功沒(méi)有,后面的命令繼續(xù)執(zhí)行
command1||command2 順序執(zhí)行多條命令,當(dāng)碰到執(zhí)行正確的命令后將不執(zhí)行后面的命令

命令執(zhí)行常用函數(shù)

 1. System:system函數(shù)可以用來(lái)執(zhí)行一個(gè)外部的應(yīng)用程序并將相應(yīng)的執(zhí)行結(jié)果輸出,函數(shù)原型如下:
string system(string command, int&return_var)
其中,command是要執(zhí)行的命令,return_var存放執(zhí)行命令的執(zhí)行后的狀態(tài)值。
2. Exec:exec函數(shù)可以用來(lái)執(zhí)行一個(gè)外部的應(yīng)用程序
string exec (string command, array&output, int &return_var)
其中,command是要執(zhí)行的命令,output是獲得執(zhí)行命令輸出的每一行字符串,return_var存放執(zhí)行命令后的狀態(tài)值。
3.Passthru:passthru函數(shù)可以用來(lái)執(zhí)行一個(gè)UNIX系統(tǒng)命令并顯示原始的輸出,當(dāng)UNIX系統(tǒng)命令的輸出是二進(jìn)制的數(shù)據(jù),并且需要直接返回值給瀏覽器時(shí),需要使用passthru函數(shù)來(lái)替代system與exec函數(shù)。Passthru函數(shù)原型如下:
void passthru (string command, int&return_var)
其中,command是要執(zhí)行的命令,return_var存放執(zhí)行命令后的狀態(tài)值。
4. Shell_exec:執(zhí)行shell命令并返回輸出的字符串,函數(shù)原型如下:
string shell_exec (string command)
其中,command是要執(zhí)行的命令。

代碼執(zhí)行漏洞:
應(yīng)用程序在調(diào)用一些能夠?qū)⒆址D(zhuǎn)換為代碼的函數(shù)(如PHP中的eval)時(shí),沒(méi)有考慮用戶是否控制這個(gè)字符串,將造成代碼執(zhí)行漏洞。
很難通過(guò)黑盒查找漏洞,大部分都是根據(jù)源代碼判斷代碼執(zhí)行漏洞。

php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決

代碼執(zhí)行相關(guān)函數(shù):
PHP: eval、assert、preg_replace()、+/e模式(PHP版本<5.5.0)

漏洞分類

**1.代碼層過(guò)濾不嚴(yán)
商業(yè)應(yīng)用的一些核心代碼封裝在二進(jìn)制文件中,在web應(yīng)用中通過(guò)system函來(lái)調(diào)用:
system("/bin/program --arg$arg");
2.系統(tǒng)的漏洞造成命令注入
bash破殼漏洞(CVE-2014-6271)
3.調(diào)用的第三方組件存在代碼執(zhí)行漏洞
如WordPress中用來(lái)處理圖片的ImageMagick組件
JAVA中的命令執(zhí)行漏洞(struts2/ElasticsearchGroovy等)
ThinkPHP命令執(zhí)行**

實(shí)戰(zhàn)
下面來(lái)看看TP5.1的命令執(zhí)行漏洞
php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決

在url添加上poc

/index.php?s=index/\think\Container/invokeFunction&function=call_user_func_array&vars[]=system&vars[1][]=dir

php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決
php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決
成功執(zhí)行命令
TP的漏洞還有很多大家可以去試試

修復(fù)方案

1.盡量少用執(zhí)行命令的函數(shù)或者直接禁用
2.參數(shù)值盡量使用引號(hào)包括
3.在使用動(dòng)態(tài)函數(shù)之前,確保使用的函數(shù)是指定的函數(shù)之一
4.在進(jìn)入執(zhí)行命令的函數(shù)/方法之前,對(duì)參數(shù)進(jìn)行過(guò)濾,對(duì)敏感字符進(jìn)行轉(zhuǎn)義
5.能使用腳本解決的工作,不要調(diào)用其他程序處理。盡量少用執(zhí)行命令的函數(shù),并在disable_functions中禁用
6.對(duì)于可控點(diǎn)是程序參數(shù)的情況下,使用escapeshellcmd函數(shù)進(jìn)行過(guò)濾,對(duì)于可控點(diǎn)是程序參數(shù)值的情況下,使用escapeshellarg函數(shù)進(jìn)行過(guò)濾
7.參數(shù)的值盡量使用引號(hào)包裹,并在拼接前調(diào)用addslashes進(jìn)行轉(zhuǎn)義
而針對(duì)由特定第三方組件引發(fā)的漏洞,我們要做的就是及時(shí)打補(bǔ)丁,修改安裝時(shí)的默認(rèn)配置。

讀到這里,這篇“php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁(yè)題目:php命令執(zhí)行與代碼執(zhí)行漏洞怎么解決
本文網(wǎng)址:http://jinyejixie.com/article32/jpcdpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站策劃、網(wǎng)站收錄商城網(wǎng)站、軟件開發(fā)自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
翁牛特旗| 泊头市| 长泰县| 平邑县| 平定县| 内丘县| 宿松县| 厦门市| 常山县| 大同市| 庄浪县| 方山县| 嘉义县| 岑巩县| 离岛区| 德阳市| 山西省| 修文县| 宁海县| 敦煌市| 丽水市| 崇州市| 鞍山市| 湛江市| 永善县| 马公市| 台南县| 南开区| 无极县| 手机| 新晃| 共和县| 文安县| 板桥市| 旬阳县| 凤庆县| 蒙自县| 永福县| 荥经县| 绩溪县| 临城县|