1. XSS攻击(跨站脚本攻击)
通常主要表现为使用未经过校验的字符串,解析不安全的JSON数据等。
一般流程表现为通过客户端提交请求给服务器,请求参数中带有特殊构造的恶意参数(以下会举例说明),请求发送到服务器有可能将恶意的参数保存到数据库造成服务器安全漏洞,或者参数返回到页面后造成导致页面结构被破坏,引入了不期望的代码到页面中。
以ZCMS2.1版本中的一个XSS漏洞为例:
在ZCMS2.2之前的版本都存在一个动态zaction地址的XSS漏洞,由于未对zaction的请求做参数处理导致所有的前端的所有zaction的动态页面可以通过URL参数构造跨域脚本进行攻击。
例如:http://localhost/zcms/member/login?SiteID=14&Referer= "><img%20src=@%20οnerrοr=alert(2580)%20/
访问此地址时由于Referer参数为进行过滤处理,导致参数被原封不动输出到了登录页面,造成页面格式错误,引入了不期望的代码到页面中。ZCMS2.2及以后的版本中修复了此问题。
解决办法:对前端页面的请求参数进行特殊字符过滤。目前ZCMS中的处理方法为对参数中的HTML标签、单引号和双引号进行编码或转义处理。
2. 网站路径泄露
主要表现为在网站的页面中包含了服务器的路径信息,最常见的是由于未进行404或者500等异常错误的处理,导致错误信息直接输出到了页面中,可能会暴露服务器的一些路径信息。
这类问题一般比较容易处理,危害性也比较小,主要是获取到路径后可能配合其他的网站漏洞实施进一步攻击。
解决办法:添加对404或者500等异常状态的错误页面配置,避免直接显示错误日志在页面中。注意对页面信息的处理,避免返回的页面数据中包含系统路径信息。
3. 服务器端应用程序错误
系统有时候会发生一些未预知到的错误异常,未对错误页面处理可能导致异常信息被直接输出到页面中,异常信息会泄露系统程序的相关信息。
解决办法:添加对404或者500等异常状态的错误页面配置,避免直接显示错误日志在页面中。
4. Email地址泄露
主要表现在页面中存在Email地址,可能会导致Email地址被网页爬虫之类的扫描工具获取到。
解决办法:对页面中的Email地址在输出钱进行特殊处理,例如将@替换成#,通过js将Email地址输出到页面中,或者直接将Email地址转成图片输出到页面中等等。
5. HTTP方法评估
表中标记为危险的HTTP方法建议关掉。
解决办法:
apache中关闭TRACE方法:
在配置文件http.conf中添加Trace_Enable off即可,也可以在ServerRoot中配置。
apache中关闭OPTIONS方法:配置文件中添加以下配置。
重启nginx,这样就屏蔽了除GET/POST/HEAD以外的其他方法。
tomcat中配置方法:在web.xml中添加如下配置即可自定义需要开启的HTTP METHODS。
https://www.xinxi0755.com/