前言
在日常安全测试工作中,至少有30%以上的定级为严重和高危的漏洞,都是基于服务端口配置不当所造成的。
因此,本篇文章主要针对服务端口安全问题展开简单总结,希望能尽量减少在日常开发工作中的严重高危漏洞。(由于篇幅有限,本文只探讨平时在安全测试中所发现的端口服务漏洞)
我们都知道,Web服务一般都是通过端口号来识别的,而端口与服务的关系,就好像端口是闸门钥匙,服务是泄洪水库,当需要泄洪的时候需要用钥匙开启闸门。一旦钥匙保存不当(端口配置不当),那么这把钥匙就有可能被不怀好意的人所利用,所造成的后果往往是很严重的。比如敏感数据被窃取,服务器命令任意执行,服务器权限被非法获取等。下文来讲解具体的某些服务配置不当所造成的漏洞危害,以及如何去正确配置。
服务
Apache/Tomcat/Nginx等中间件(默认端口:80/8080)
1、弱口令(admin/admin,root/root等)
详解:有些应用开放了中间件的控制台页面,如果存在弱口令,可通过爆破登录控制台,对部署的应用进行任意操作,甚至可以上传恶意脚本getshell。
加固:以tomcat为例,删除tomcat目录下的ROOT文件;或者打开conf/tomcat-uers.xml,修改类似于<user username="admin" password="admin" roles="admin,manager"/>的用户名密码。
2、版本信息泄露
详解:当访问应用不存在的页面时,会返回中间件默认设置的404页面,该页面会泄露相关版本信息。某些版本的中间件含有特定漏洞 ,如果攻击者知道了版本信息,可能会针对该版本来进行攻击,因此需要我们自定义错误页面。
加固:在web.xml文件的<error-page>设置中,重定向到自定义的错误页面。
WebLogic(默认端口7001)
1、java反序列化
详解:Java反序列化即,由字节流还原成对象。ObjectInp