服務器安全運維記錄:封堵php下的一句話木馬,正確禁用php的eval的方法

一句話木馬的破壞能力有多大,使用過的人相信很瞭解,沒有使用過的人,可以看文章 一句話木馬功能展示。

一句話木馬功能展示

在服務器上,新建一個test.php文件,內容如下:(jsp,aspx,aps都有一句話木馬,篇幅有限,不舉例了。)

<?php eval($_POST['key']); ?>

確認 www.xxxx.com/test.php可以被訪問,再用“中國菜刀”等等工具就可以連接服務器,而且可以穿透WAF、防火牆、IPS等安全設備。方法就不展示了,自行百度。

看到上面的圖,基本能明白,可以幹什麼了吧?是不是很恐怖😱。直接就可以下載和更新/etc/passwd  😱😱😱

 

接下來,運維人員應該在麼做呢?封掉eval()是最直接的方式。


php的eval函數並不是系統組件函數,因此我們在php.ini中使用disable_functions是無法禁止它的。

但是eval()對於php安全來說具有很大的殺傷力,因此一般不用的情況下建議禁用php的eval()函數。

正確禁用php的eval()的方法:使用php的擴展 Suhosin

Suhosin安裝方法如下:https://www.suhosin.org/stories/download.html

yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils  patch perl

cd /usr/local/src
wget https://download.suhosin.org/suhosin-0.9.38.tar.gz
tar zxvf suhosin-0.9.38.tgz
cd suhosin-0.9.38

/usr/local/php/bin/phpize     #如果不知道在哪用find / -name phpize 
./configure  --with-php-config=/usr/local/php/bin/php-config
make & make install


vi /usr/local/php/etc/php.ini  #在最後一行添加以下內容
extension="suhosin.so"

打完收工,eval()無法使用了

記得service php-fpm restart

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章