Apache tomcat中间件出现的安全问题
tomcat在安装成功的时候,后台弱密码(tomcat tomcat)
而且Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用,以及用户自己的配置
http://www.365mini.com/page/tomcat-manager-user-configuration.htm
默认的开放的端口是8080。
利用弱密码,登录tomcat后台登录界面。
一般找站通过找到后台的/manager,登录。可以利用密码爆破或是弱密码登录。
上传大马,进行getsehll
想大马压缩并且改为后缀为.war的java的归属文档。
上传成功。访问文件。
getshell。
如何防御tomcat出现的安全问题
1.删除manager这个文件。
2.重新设置tomcat后台的密码
3.修改默认的端口
fcgi_exp 对php-fpm的远程利用
什么是fcgi?
Fastcgi是CGI的升级版,一种语言无关的协议,用来沟通程序(如PHP, Python, Java)和Web服务器(Apache2, Nginx), 理论上任何语言编写的程序都可以通过Fastcgi来提供Web服务。
Fastcgi的特点是会在一个进程中依次完成多个请求,以达到提高效率的目的,大多数Fastcgi实现都会维护一个进程池。
利用脚本,fcgi调用php-fpm
来完成
fcgi对php-fpm又有什么影响
PHP-fpm就是针对于PHP的,Fastcgi的一种实现,他负责管理一个进程池,来处理来自Web服务器的请求。
目前,PHP-fpm是内置于PHP的。
也可以成功的写入写入webshell
安全问题
1.root启动php-cgi,webshell也会拥有root权限。
2.php-cgi监听端口对外开放,导致本地文件包含漏洞。
3.php-fpm监听端口对外开放,导致远程文件包含漏洞。
4.php-fpm作为php解析器时,webshell可以绕过open_basedir、safe_mode等限制。
http://blog.sina.com.cn/s/blog_777f9dbb0102vadk.html
建议:
1、倘若使用php-cgi,则需切换至非root用户去启动。
2、对于php-cgi或php-fpm监听端口必须对外开放的情况(一般用于nginx/apache与php分离),则需做访问控制,只允许指定IP访问。
redis
什么是redis?
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
优点
edis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都
支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排
序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文
件,并且在此基础上实现了master-slave(主从)同步。
利用redis写webshell
连接成功,并且在文件中创建成功。
然后编辑一个webshell
利用redis服务实现ssh免秘钥登录
- 在本地实现ssh-keygen -t rsa 然后切换到.ssh目录下
- 然后将ssh公钥文件重定向到新文件下,写到redis服务端
- 连接到服务端,更改路径。把公钥文件内容写到keys下
- 最后ssh远程连接 登录到服务器
redis 编写计划任务
1.在服务端连接redis写一个计划任务。
2.在本地监听一个设置的8888端口。
连接成功,成功的反弹shell。