Web网站、应用常见漏洞 二

最近在网站上线时,安全检查发现了一些网站的漏洞,这里写篇文章把常见的漏洞记录一下,这个是第二篇。

一:检测到目标服务器上存在web应用默认目录

描述:

web应用架构中的目录都采用常见的目录名。如图片目录images,javascript目录js,不同的目录潜在的危险是不同的。攻击者一般利用常见目录中可能包含的敏感文件获取敏感信息。
本漏洞属于Web应用安全常见漏洞。

解决方案:

如果不需要这些目录,可以删除此类目录;
或者严格限制目录的访问权限。

示例:

对于go web服务。

//判断网址,若是目录访问 则返回404页面
func dirToZero(next http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if strings.HasSuffix(r.URL.Path, "/") {
			http.NotFound(w, r)
			return
		}

		next.ServeHTTP(w, r)
	})
}
func main() {
	fs := http.FileServer(http.Dir("./web"))
	http.Handle("/", http.StripPrefix("/", dirToZero(fs)))
	http.HandleFunc("/test", web.Test)
	http.ListenAndServe(":80", nil)
	c := make(chan os.Signal, 1)
	signal.Notify(c, os.Interrupt, os.Kill)
}

二:点击劫持:X-Frame-Options未配置

描述:

点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。
HTTP 响应头信息中的X-Frame-Options,可以指示浏览器是否应该加载一个 iframe 中的页面。如果服务器响应头信息中没有X-Frame-Options,则该网站存在ClickJacking攻击风险。网站可以通过设置 X-Frame-Options 阻止站点内的页面被其他页面嵌入从而防止点击劫持。

解决方案:

修改web服务器配置,添加X-Frame-Options响应头。赋值有如下三种:
1、DENY:不能被嵌入到任何iframe或者frame中。
2、SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。
3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
例如:
apache可配置http.conf如下:

Header always append X-Frame-Options “DENY”

IIS可配置相关网站的Web.config如下:


三:检测到目标网站存在上传下载相关的目录和文件

描述:

检测到目标网站存在上传下载相关的目录和文件。上传目录一般具有可写权限。攻击者可以预测文件上传的路径,便于和目标站点的其他漏洞攻击结合攻击目标服务器。

解决方案:

检查此类目录的访问权限。如果不需要这些目录,建议删除。

四:检测到目标服务器可能存在系统路径信息泄露

描述:

检测到在服务器的响应内容中可能存在系统目录路径信息,如/home,/var或者c:\等信息,这一般是由于目标web应用没有处理好应用错误信息导致的目录路径信息泄露。

如果攻击者获取到这些信息,可以了解目标服务器目录结构,给攻击者带来便利,如上传文件到服务器的其他目录。

解决方案:

如果是正常页面中包含路径信息,如果不需要该路径信息,删除该信息。
如果是错误信息中包含路径信息,需要屏蔽应用程序错误信息。

五:检测到可能存在应用程序的默认测试用例文件

描述:

发现目标网站存在测试应用程序。这种类型的文件通常是由开发人员或者网站管理员用于测试web应用程序的某个功能时留在服务器上的。这些文件可能包含有敏感信息,包括已验证的会话ID,用户名/密码等。如果攻击者获取到这些敏感信息,攻击者可以进一步获取其他敏感数据。

解决方案:

删除此类文件或限制此类文件的访问权限。

你可能感兴趣的:(前端,网络安全,后端go,前端)