一次渗透和web漏洞修复

Apache Tomcat AJP连接器请求注入

解:将tomcatconf/server.xml配置文件,注释掉<Connector port=“8009” protocol="AJP/1.3"redirectPort=“8443” />

DS_Store文件信息泄露

.DS_Store是Mac下Finder用来保存如何展示文件//文件夹的数据文件,每个文件夹下对应一个。由于开发/设计人员在发布代码时未删除文件夹中隐藏的.DS_store,可能造成文件目录结构泄漏、源代码文件等敏感信息的泄露。
解:删除.DS_Store文件

任意文件下载

比如一个图片访问接口,如果访问的是服务器本地的图片,那么需要对访问路径进行限制
例如:接口127.0.0.1:8080/user/getImg/path=123.jpg,123.jpg是直接存放在服务器固定路径下的,如果没有对路径进行限制,这样访问接口127.0.0.1:8080/user/getImg/path=../../../../../etc/passwd,可能会访问到服务器的任何文件
解:过滤接口参数中的路径信息

登录信息爆破

有些服务的登录接口会返回用户名不存在,这样就能够被有心之人利用,爆破找到数据库中存在的用户,进而造成威胁
解:无论是用户名不存在还是密码错误都返回同样的返回信息 用户名或者密码错误

登录缺失验证码

系统登陆处未设置验证码功能校验登录是否是人工登录行为,攻击者可通过工具进行字典攻击可对账号密码进行暴力破解
解:添加需要验证码登录的功能

Tomcat管理界面泄露

解:如果项目发布在tomcat中,删除其他所有tomcat自带的webapps下的文件,只保留自己的项目

Apache Tomcat样例目录session操纵

访问tomcat自带的webapps中的examples项目,存在众多的样例页面,存在着可被利用成功的风险。
Apache Tomcat默认安装包含”/examples”目录,里面存着众多的样例,其中session样例(/examples/servlets /servlet/SessionExample)允许用户对session进行操纵。因为session是全局通用的,所以用户可以通过操纵 session获取管理员权限
解:删除examples目录

启用TLS 1.0

攻击者可能能够利用此问题进行中间人攻击,并对受影响的服务和客户端之间的通信进行解密

解:禁用TLS 1.0并将其替换为TLS 1.2或更高版本
tomcat使用TLS1.2:添加配置sslEnabledProtocols="TLSv1.2"

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           keystoreFile="conf/domains.jks"
           keystorePass="xxxxxxxx"
           clientAuth="false" sslProtocol="TLS"  sslEnabledProtocols="TLSv1.2"/>

java中禁用TLS1.0:
jdk安装目录下jre/lib/security/java.security中修改以下配置(添加TLSv1禁用):

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, DH keySize < 1024, \
    EC keySize < 224, 3DES_EDE_CBC
缺少X-Frame-Options标头

服务器未返回X-Frame-Options标头,这意味着该网站可能会遭受点击劫持攻击的风险。X-Frame-Options HTTP响应标头可用于指示是否应允许浏览器在框架或iframe中呈现页面。网站可以通过确保其内容未嵌入其他网站来避免点击劫持攻击
解:后端在header中添加X-Frame-Options标头
java示例代码:

response.setHeader("x-frame-options","SAMEORIGIN");

发表评论

邮箱地址不会被公开。 必填项已用*标注