0x00 前言
某web应用一直被黑,加上是零几年的网站代码没人维护,于是从某云开个服务器放上去了,然后再部署一个防护软件,想装个安全狗的,听大佬说存在数据回传,之前关注了百度开源的OpenRASP项目,先在测试环境试一下
0x01 环境
这个PHP测试环境是前几天CVE-2019-11043 PHP-FPM + Nginx RCE的漏洞靶场
docker 启动并将宿主机目录挂在到容器 /var/www/html 目录下
下载测试用例
1 | wget https://packages.baidu.com/app/openrasp/testcases/php-vulns.tar.gz |
下载openrasp
1 | wget https://packages.baidu.com/app/openrasp/release/1.2.1/rasp-php-linux.tar.bz2 |
进入容器内
这里安装单机版,openrasp依赖pdo、pcre、json扩展
通过php -m 查看扩展状态是已启用的
0x02 安装
这里使用自动化安装失败
改为手工安装
- 确认基本信息
在web目录下创建一个phpinfo.php文件
定位到extension_dir,确认PHP扩展安装目录
1 | /usr/local/lib/php/extensions/no-debug-non-zts-20170718 |
搜索Additional .ini files parsed (生产服务器上没有,搜索Loaded Configuration File确认ini配置文件路径)
1 | /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini |
在该目录下创建一个新的ini文件/etc/php.d/z-openrasp.ini
- 安装软件
根据PHP版本号,复制openrasp.so到扩展目录
1 | cp openrasp/rasp-php-2019-10-29/php/linux-php7.2-x86_64/openrasp.so /usr/local/lib/php/extensions/no-debug-non-zts-20170718/ |
确定openrasp安装目录,这个目录将会用于存储检测插件、报警日志、插件日志等内容
1 | mkdir -p /opt/rasp |
修改z-openrasp.ini,添加
1 | ; BEGIN OPENRASP |
将官方插件移动到 /opt/rasp/plugins/ 目录下
重启php-fpm
验证是否安装成功,通过phpinfo.php,检查openrasp模块是否加载成功,返回包X-Protected-By: OpenRASP
插件模式开启的是观察模式,将所有的拦截改为仅记录日志,在插件里面关闭观察模式