web漏洞解决办法
https://blog.csdn.net/ApolloGG/article/details/51734368
1、检测到目标URL存在http host头攻击漏洞
Apache:
增加配置
UseCanonicalName On
2、检测到目标服务器存在应用程序错误
详细信息: 若要使他人能够从本地服务器计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个
详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个
注释: 通过修改应用程序的
3、检测出目标web应用表单存在口令猜测攻击
WEB程序的Form文件夹目录权限不足,需将Form文件赋予Everyone或Users帐号完全控制权限。
4、jQuery 存在 XSS 漏洞
jquery下载地址:https://code.jquery.com/jquery/
影响范围:
版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷,可能导致LOCATION.HASH跨站漏洞
5、检测到错误页面web应用服务器版本信息泄露
隐藏apache版本信息:
开启 httpd.conf,加入以下两行:
ServerTokens ProductOnly
ServerSignature Off
隐藏Nginx版本信息:
开启 nginx.conf,在http { }里加上:
server_tokens off;
隐藏php-fpm版本信息:
开启php-fpm配置文件,找到:
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
改为:
fastcgi_param SERVER_SOFTWARE nginx0.0.0; #(这个nginx0.0.0就是显示的内容)
隐藏PHP版本信息:
开启php.ini,加入:
expose_php = Off
完成以上设定后,重新启动 Apache/Nginx 即可。
6、检测到目标服务器启用了OPTIONS方法
解决方案一:单个项目生效
在项目中的web.xml配置,放在web.xml最后添加如下内容:
解决方案二:Tomcat中所有项目生效
在Tomcat服务器的web.xml上配置,路径tomcat/conf/web.xml。修改内容如下:
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
重新部署程序,重启tomcat即可完成
以上的代码添加到某一个应用中,也可以添加到tomcat的web.xml中,区别是添加到某一个应用只对某一个应用有效如果添加到tomcat的web.xml中,则对tomcat下所有的应用有效。
7、检测到目标网站存在无效链接
无效链接是指存在于页面中,但其指向的资源已经不存在。
本漏洞属于Web应用安全常见漏洞。
8、点击劫持:X-Frame-Options未配置
使用 X-Frame-OptionsEDIT
X-Frame-Options 有三个值:
DENY
表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN
表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri
表示该页面可以在指定来源的 frame 中展示。
换一句话说,如果设置为 DENY,不光在别人的网站 frame 嵌入时会无法加载,在同域名页面中同样会无法加载。
另一方面,如果设置为 SAMEORIGIN,那么页面就可以在同域名页面的 frame 中嵌套。
配置 Apache
配置 Apache 在所有页面上发送 X-Frame-Options 响应头,需要把下面这行添加到 'site' 的配置中:
Header always append X-Frame-Options SAMEORIGIN
配置 nginx
配置 nginx 发送 X-Frame-Options 响应头,把下面这行添加到 'http', 'server' 或者 'location' 的配置中:
add_header X-Frame-Options SAMEORIGIN;
配置 IIS
配置 IIS 发送 X-Frame-Options 响应头,添加下面的配置到 Web.config 文件中:
...
...
配置 TOMCAT
“点击劫持:X-Frame-Options未配置”
因为项目使用的是tomcat服务器,我们不可能在每个页面去添加
response.addHeader("x-frame-options","SAMEORIGIN");
因此我们使用过滤器,代码如下:
HttpServletResponse response = (HttpServletResponse) sResponse;
response.addHeader("x-frame-options","SAMEORIGIN");
通过以下配置,好像就没有在扫描出来该漏洞信息。
9、检测到目标URL启用了不安全的HTTP方法
最简单的方式就是修改WEB应用的web.xml部署文件。在里面插入下面几行代码就搞定了,把需要屏蔽的方法加在里面。如果应用包比较多也没必要一个个改,直接修改Tomcat的web.xml就可以了,这样在Tomcat中运行的实例都会有效。
重启服务再验证就不会存在这个问题了。
10、openssl拒绝服务漏洞
漏洞影响范围
上述漏洞影响OpenSSL1.1.0版本。
漏洞修复建议
目前,厂商已发布了漏洞修复程序,用户可将程序升级至1.1.0c版本。
11、OpenSSH CBC模式信息泄露漏洞
修改ssh配置文件/etc/ssh/sshd_config,首先查找该文件中是否有下面关键字的配置项
# Ciphers and keying
Ciphers ....
如果存在则修改为下面这段,不存在则在这个文件的末尾加上下面这段
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],arcfour
#Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,arcfour
重启openssh
12、https://www.cnblogs.com/lsdb/p/8204578.html
1.允许Traceroute探测
描述:本插件使用Traceroute探测来获取扫描器与远程主机之间的路由信息。攻击者也可以利用这些信息来了解目标网络的网络拓扑。
处理:
iptables -I INPUT -p icmp --icmp-type 11 -m comment --comment "deny traceroute" -j DROP
2.ICMP timestamp请求响应漏洞
描述:远程主机会回复ICMP_TIMESTAMP查询并返回它们系统的当前时间。 这可能允许攻击者攻击一些基于时间认证的协议。
处理:
iptables -I INPUT -p ICMP --icmp-type timestamp-request -m comment --comment "deny ICMP timestamp" -j DROP
iptables -I INPUT -p ICMP --icmp-type timestamp-reply -m comment --comment "deny ICMP timestamp" -j DROP
3.探测到SSH服务器支持的算法
描述:本插件用来获取SSH服务器支持的算法列表
处理:无法处理。ssh协议协商过程就是服务端要返回其支持的算法列表。
4.SSH版本信息可被获取
描述:SSH服务允许远程攻击者获得ssh的具体信息,如版本号等等。这可能为攻击者发动进一步攻击提供帮助。
处理:无法处理。sshd_config中的Banner项只是ssh主机前输出的信息,源码处理机制就是telnet其端口就会返回版本信息。
13、远程MySQL/mariadb/percona server版本泄露
漏洞修复建议(或临时措施):
1.可以采用以下临时方案:
在my.cnf中添加,然后重启mysql服务:
symbolic-links = 0
同时建议不要将数据库、操作系统管理端口等高风险端口发布到互联网,并关注应用代码安全漏洞,及时更新官方补丁、修复漏洞,防止系统被入侵。
2.升级到官方最新版本: