如何有效防止PHP木马对网站提权
如何有效防止PHP木馬對(duì)網(wǎng)站提權(quán)
1.防止跳出web目錄
首先修改httpd.conf:
如果你只允許你的php腳本程序在web目錄里操作,還可以修改httpd.conf文件限制php的操作路徑。比如
你的web目錄是/usr /local/apache/htdocs,那么在httpd.conf里加上這么幾行:
php_admin_value open_basedir /usr/local/apache/htdocs這樣,如果腳本要讀取/usr/local/apache/htdocs以外的文件將不會(huì)被允許。
但經(jīng)過(guò)這樣修改后,關(guān)于php文件上傳會(huì)受到影響。后來(lái)終于找到了
為了安全,我們通常會(huì)在虛擬主機(jī)設(shè)置中,加入這一行
php_admin_value open_basedir “/usr/local/apache/htdocs/www”但這會(huì)導(dǎo)致move_uploaded_file不能讀取臨時(shí)目錄中的上傳文件,導(dǎo)致上傳文件失失敗。
一般會(huì)提示以下錯(cuò)誤:
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/tmp/phpqwg5rO) is not within the allowed path(s): (/usr/local/apache/htdocs/www) in /usr/local/apache/htdocs/www/includes/lib_common.php on line 3130解決方法:
將上傳文件的臨時(shí)目錄加入到php_admin_value open_basedir后面,最后看起來(lái)是這樣的:
php_admin_value open_basedir “/usr/local/apache/htdocs/www:/tmp”注意:兩個(gè)目錄之間是冒號(hào)隔開(kāi)(Linux中)。
如果是Windows中,將冒號(hào)換成分號(hào):
php_admin_value open_basedir “d:/www/mysite;c:/windows/temp”2.防止php木馬執(zhí)行webshell
打開(kāi)safe_mode,
在,php.ini中設(shè)置
disable_functions= passthru,exec,shell_exec,system二者選一即可,也可都選
3.防止php木馬讀寫(xiě)文件目錄
在php.ini中的
disable_functions= passthru,exec,shell_exec,system后面加上php處理文件的函數(shù)
主要有
fopen,mkdir,rmdir,chmod,unlink,dir fopen,fread,f*lose,fwrite,file_exists closedir,is_dir,readdir.opendir fileperms.copy,unlink,delfile即成為
disable_functions= passthru,exec,shell_exec,system,fopen,mkdir,rmdir,chmod,unlink,dir,fopen,fread,fclose,fwrite,file_exists ,closedir,is_dir,readdir.opendir ,fileperms.copy,unlink,delfile,phpinfoWP博客:
disable_functions = chdir,chroot,dir,getcwd,unlink,delete,copy,mkdir,file,fputs,chgrp,chmod,chown,passthru,exec,shell_exec,system,closedir,fileperms,delfile,phpinfook,大功告成,php木馬拿我們沒(méi)轍了,_
重啟httpd服務(wù),/usr/local/apache/bin/apachectl restart
遺憾的是這樣的話,利用文本數(shù)據(jù)庫(kù)的那些東西就都不能用了。
4、其他
找到”display_errors=on”改為”display_errors=off”一般php在沒(méi)有連接到數(shù)據(jù)庫(kù)或者其他情況下會(huì)有提示錯(cuò)誤,一般錯(cuò)誤信息中會(huì)包含php腳本當(dāng)前的路徑信
息或者查詢(xún)的SQL語(yǔ)句等信息,這類(lèi)信息提供給黑客后,是不安全的,所以一般服務(wù)器建議禁止錯(cuò)誤提示 。
查找:magic_quotes_gpc 如果是Off的話改成On
打開(kāi)magic_quotes_gpc來(lái)防止SQL注入。
查找:open_basedir 后面增加 /www/ /說(shuō)明:www為網(wǎng)站程序所放文件/
這個(gè)選項(xiàng)可以禁止指定目錄之外的文件操作,還能有效地消除本地文件或者是遠(yuǎn)程文件被include()等函
數(shù)的調(diào)用攻擊。
expose_php設(shè)為off ,這樣php不會(huì)在http文件頭中泄露信息。
我們?yōu)榱朔乐购诳瞳@取服務(wù)器中php版本的信息,可以關(guān)閉該信息斜路在http頭中 。
設(shè)置“allow_url_fopen”為“off” 這個(gè)選項(xiàng)可以禁止遠(yuǎn)程文件功能 。
下面的沒(méi)有測(cè)試
如果是在windos平臺(tái)下搭建的apache我們還需要注意一點(diǎn),apache默認(rèn)運(yùn)行是system權(quán)限,這很恐怖,這讓
人感覺(jué)很不爽.那我們就給 apache降降權(quán)限吧.
net user apache ****microsoft /add net localgroup users apache /delok.我們建立了一個(gè)不屬于任何組的用戶(hù)apche.
我們打開(kāi)計(jì)算機(jī)管理器,選服務(wù),點(diǎn)apache服務(wù)的屬性,我們選擇log on ,選擇this account ,我們填入上
面所建立的賬戶(hù)和密碼, 重啟apache服務(wù),ok,apache運(yùn)行在低權(quán)限下了.
實(shí)際上我們還可以通過(guò)設(shè)置各個(gè)文件夾的權(quán)限,來(lái)讓apache用戶(hù)只能執(zhí)行我們想讓它能干的事情,給每一個(gè)
目錄建立一個(gè)單獨(dú)能讀寫(xiě)的用戶(hù).這也是當(dāng)前很多虛擬主機(jī)提供商的流行配置方法哦,不過(guò)這種方法用于防止這
里就顯的有點(diǎn)大材小用了。
服務(wù)器防止webshell后門(mén) ,php禁用eval
服務(wù)器被搞的不能行,因?yàn)樘厥庠虮仨毴ナ袌?chǎng)上購(gòu)買(mǎi)模板,所以避免不了被留下了后門(mén)。
研究了很久的后門(mén),發(fā)現(xiàn)都是通過(guò)eval函數(shù)引起的,eval其實(shí)并不是一個(gè)函數(shù),而是底層提供第一種特性。
看了百度很多文章,都是通過(guò)php擴(kuò)展來(lái)禁用eval,
我們是站群服務(wù)器,
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl cd /usr/local/src wget http://download.suhosin.org/suhosin-對(duì)應(yīng)的版本.tgz tar zxvf suhosin-對(duì)應(yīng)的版本.tgz cd suhosin-對(duì)應(yīng)的版本 /usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config make & make installsuhosin的版本可以去http://download.suhosin.org根據(jù)php版本選擇對(duì)應(yīng)的,目前就5.x和7.0之分
編譯完成之后,會(huì)告訴你suhosin.so文件所在的位置。如果是默認(rèn)位置的話一般都是/usr/lib64/php/modules/suhosin.so
在php.ini里加上這兩行就ok了
extension=/usr/lib64/php/modules/suhosin.so suhosin.executor.disable_eval=On完畢。
驗(yàn)證:
先把一句話木馬放到項(xiàng)目里,然后使用xx工具進(jìn)行入侵
這時(shí)候http請(qǐng)求雖然成功了,但是已經(jīng)無(wú)法拿到權(quán)限了。
其實(shí),后門(mén)入侵的方式很多,尤其開(kāi)發(fā)人員或者購(gòu)買(mǎi)的代碼,這個(gè)只是防止了一句話木馬,還有更致命大馬、小馬 以及提權(quán)。
等我研究好防止大馬的東西會(huì)再出來(lái)記錄。
總結(jié)
以上是生活随笔為你收集整理的如何有效防止PHP木马对网站提权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用Office Tool Plus安装
- 下一篇: php面试题目(中等水平)