如何有效防止PHP木马对网站提权
如何有效防止PHP木馬對網站提權
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以外的文件將不會被允許。
但經過這樣修改后,關于php文件上傳會受到影響。后來終于找到了
為了安全,我們通常會在虛擬主機設置中,加入這一行
php_admin_value open_basedir “/usr/local/apache/htdocs/www”但這會導致move_uploaded_file不能讀取臨時目錄中的上傳文件,導致上傳文件失失敗。
一般會提示以下錯誤:
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解決方法:
將上傳文件的臨時目錄加入到php_admin_value open_basedir后面,最后看起來是這樣的:
php_admin_value open_basedir “/usr/local/apache/htdocs/www:/tmp”注意:兩個目錄之間是冒號隔開(Linux中)。
如果是Windows中,將冒號換成分號:
php_admin_value open_basedir “d:/www/mysite;c:/windows/temp”2.防止php木馬執(zhí)行webshell
打開safe_mode,
在,php.ini中設置
disable_functions= passthru,exec,shell_exec,system二者選一即可,也可都選
3.防止php木馬讀寫文件目錄
在php.ini中的
disable_functions= passthru,exec,shell_exec,system后面加上php處理文件的函數
主要有
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木馬拿我們沒轍了,_
重啟httpd服務,/usr/local/apache/bin/apachectl restart
遺憾的是這樣的話,利用文本數據庫的那些東西就都不能用了。
4、其他
找到”display_errors=on”改為”display_errors=off”一般php在沒有連接到數據庫或者其他情況下會有提示錯誤,一般錯誤信息中會包含php腳本當前的路徑信
息或者查詢的SQL語句等信息,這類信息提供給黑客后,是不安全的,所以一般服務器建議禁止錯誤提示 。
查找:magic_quotes_gpc 如果是Off的話改成On
打開magic_quotes_gpc來防止SQL注入。
查找:open_basedir 后面增加 /www/ /說明:www為網站程序所放文件/
這個選項可以禁止指定目錄之外的文件操作,還能有效地消除本地文件或者是遠程文件被include()等函
數的調用攻擊。
expose_php設為off ,這樣php不會在http文件頭中泄露信息。
我們?yōu)榱朔乐购诳瞳@取服務器中php版本的信息,可以關閉該信息斜路在http頭中 。
設置“allow_url_fopen”為“off” 這個選項可以禁止遠程文件功能 。
下面的沒有測試
如果是在windos平臺下搭建的apache我們還需要注意一點,apache默認運行是system權限,這很恐怖,這讓
人感覺很不爽.那我們就給 apache降降權限吧.
net user apache ****microsoft /add net localgroup users apache /delok.我們建立了一個不屬于任何組的用戶apche.
我們打開計算機管理器,選服務,點apache服務的屬性,我們選擇log on ,選擇this account ,我們填入上
面所建立的賬戶和密碼, 重啟apache服務,ok,apache運行在低權限下了.
實際上我們還可以通過設置各個文件夾的權限,來讓apache用戶只能執(zhí)行我們想讓它能干的事情,給每一個
目錄建立一個單獨能讀寫的用戶.這也是當前很多虛擬主機提供商的流行配置方法哦,不過這種方法用于防止這
里就顯的有點大材小用了。
服務器防止webshell后門 ,php禁用eval
服務器被搞的不能行,因為特殊原因必須去市場上購買模板,所以避免不了被留下了后門。
研究了很久的后門,發(fā)現(xiàn)都是通過eval函數引起的,eval其實并不是一個函數,而是底層提供第一種特性。
看了百度很多文章,都是通過php擴展來禁用eval,
我們是站群服務器,
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-對應的版本.tgz tar zxvf suhosin-對應的版本.tgz cd suhosin-對應的版本 /usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config make & make installsuhosin的版本可以去http://download.suhosin.org根據php版本選擇對應的,目前就5.x和7.0之分
編譯完成之后,會告訴你suhosin.so文件所在的位置。如果是默認位置的話一般都是/usr/lib64/php/modules/suhosin.so
在php.ini里加上這兩行就ok了
extension=/usr/lib64/php/modules/suhosin.so suhosin.executor.disable_eval=On完畢。
驗證:
先把一句話木馬放到項目里,然后使用xx工具進行入侵
這時候http請求雖然成功了,但是已經無法拿到權限了。
其實,后門入侵的方式很多,尤其開發(fā)人員或者購買的代碼,這個只是防止了一句話木馬,還有更致命大馬、小馬 以及提權。
等我研究好防止大馬的東西會再出來記錄。
總結
以上是生活随笔為你收集整理的如何有效防止PHP木马对网站提权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Office Tool Plus安装
- 下一篇: 动态规划算法php,php算法学习之动态