最近在网站上线时,安全检查发现了一些网站的漏洞,这里写篇文章把常见的漏洞记录一下。
RPO (Relative Path Overwrite)相对路径覆盖,作为一种相对新型的攻击方式,由 Gareth Heyes在2014年首次提出,利用的是nginx服务器、配置错误的Apache服务器和浏览器之间对URL解析出现的差异,并借助文件中包含的相对路径的css或者js造成跨目录读取css或者js,甚至可以将本身不是css或者js的页面当做css或者js解析,从而触发xss、信息泄露等进一步的攻击手段。
攻击者可以使用此技术来诱骗浏览器将HTML页面作为CSS样式表导入。如果攻击者可以控制部分导入的HTML页面,则可以滥用此问题来注入任意CSS规则。
本漏洞属于Web应用安全常见漏洞。
在页面中使用绝对路径或以正斜杠“/”开头的相对路径进行静态文件的加载。
内部 IP 通常显现在 Web 应用程序/服务器所生成的错误消息中,或显现在 HTML/JavaScript 注释中。
对攻击者而言,泄露内部 IP 非常有价值,因为它显示了内部网络的 IP 地址方案。知道内部网络的 IP 地址方案,可以辅助攻击者策划出对内部网络进一步的攻击。
内部 IP 定义为下列 IP 范围内的 IP:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
[1] 关闭 Web 应用程序/服务器中有问题的详细错误消息。
[2] 确保已安装相关的补丁。
[3] 确保内部 IP 信息未留在 HTML/JavaScript 注释中。
X-Content-Type-Options HTTP 消息头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改。这就禁用了客户端的 MIME 类型嗅探行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题。
X-Content-Type-Options响应头的缺失使得目标URL更易遭受跨站脚本攻击。
将您的服务器配置为在所有传出请求上发送值为“nosniff”的“X-Content-Type-Options”头。对于 Apache,请参阅:
http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对于 IIS,请参阅:
https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx
对于 nginx,请参阅:
http://nginx.org/en/docs/http/ngx_http_headers_module.html
HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面。
X-XSS-Protection响应头的缺失使得目标URL更易遭受跨站脚本攻击。
将您的服务器配置为在所有传出请求上发送值为“1”(例如已启用)的“X-XSS-Protection”头。对于 Apache,请参阅:
http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对于 IIS,请参阅:
https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx
对于 nginx,请参阅:
http://nginx.org/en/docs/http/ngx_http_headers_module.html
HTTP 响应头Content-Security-Policy允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点。
Content-Security-Policy响应头的缺失使得目标URL更易遭受跨站脚本攻击。
将您的服务器配置为发送“Content-Security-Policy”头。对于 Apache,请参阅:
http://httpd.apache.org/docs/2.2/mod/mod_headers.html
对于 IIS,请参阅:
https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx
对于 nginx,请参阅:
http://nginx.org/en/docs/http/ngx_http_headers_module.html