struts|Web常见的漏洞描述与修复方案( 二 )


【一>所有资源关注我 , 私信回复“资料”获取<一】

1、很多已经买不到的绝版电子书

2、安全大厂内部的培训资料

3、全套工具包

4、100份src源码技术文档

5、网络安全基础入门、Linux、web安全、攻防方面的视频

6、应急响应笔记 7、 网络安全学习路线

8、ctf夺旗赛解析

9、WEB安全入门笔记
修复建议xss漏洞本质上是一种html注入 , 也就是将html代码注入到网页中 。 那么其防御的根本就是在将用户提交的代码显示到页面上时做好一系列的过滤与转义
(1)过滤输入的数据 , 对例如:“ ‘ ” , “ “ ” , ” < “ , ” > “ , ” on* “ , script、iframe等危险字符进行严格的检查 。 这里的输入不仅仅是用户可以直接交互的输入接口 , 也包括HTTP请求中的Cookie中的变量 , HTTP请求头部中的变量等 。
(2)不仅验证数据的类型 , 还要验证其格式、长度、范围和内容 。
(3)不仅在客户端做数据的验证与过滤 , 关键的过滤步骤在服务端进行 。
(4)对输出到页面的数据进行相应的编码转换 , 如HTML实体编码、JS编码等 。 对输出的数据也要检查 , 数据库里的值有可能会在一个大网站的多处都有输出 , 即使在输入做了编码等操作 , 在各处的输出点时也要进行检查 。
3.XXE4.CSRF漏洞描述:CSRF是跨站请求伪造 , 不攻击网站服务器 , 而是冒充用户在站内的正常操作 。 通常由于服务端没有对请求头做严格过滤引起的 。 CSRF会造成密码重置 , 用户伪造等问题 , 可能引发严重后果 。 绝大多数网站是通过 cookie 等方式辨识用户身份 , 再予以授权的 。 所以要伪造用户的正常操作 , 最好的方法是通过 XSS 或链接欺骗等途径 , 让用户在本机(即拥有身份 cookie 的浏览器端)发起用户所不知道的请求 。 CSRF攻击会令用户在不知情的情况下攻击自己已经登录的系统 。
修复建议
1、验证请求的Referer是否来自本网站 , 但可被绕过 。
2、在请求中加入不可伪造的token , 并在服务端验证token是否一致或正确 , 不正确则丢弃拒绝服务 。
5.SSRF漏洞描述SSRF(Server-Side Request Forgery , 服务器端请求伪造):通俗的来说就是我们可以伪造服务器端发起的请求 , 从而获取客户端所不能得到的数据 。 SSRF漏洞形成的原因主要是服务器端所提供的接口中包含了所要请求的内容的URL参数 , 并且未对客户端所传输过来的URL参数进行过滤 。 这个漏洞造成的危害有:
(1)、可以对外网、服务器所在内网、本地进行端口扫描 , 获取一些服务的banner信息;
(2)、攻击运行在内网或本地的应用程序(比如溢出);
(3)、对内网Web应用进行指纹识别 , 通过访问默认文件实现;
(4)、攻击内外网的Web应用 , 主要是使用Get参数就可以实现的攻击(比如Struts2漏洞利用 , SQL注入等);
(5)、利用File协议读取本地文件 。
修复建议
1、禁用不需要的协议 , 只允许HTTP和HTTPS请求 , 可以防止类似于file:// gopher:// ftp:// 等引起的问题 。
2、白名单的方式限制访问的目标地址 , 禁止对内网发起请求
3、过滤或屏蔽请求返回的详细信息 , 验证远程服务器对请求的响应是比较容易的方法 。 如果web应用是去获取某一种类型的文件 。 那么在把返回结果展示给用户之前先验证返回的信息是否符合标准 。
4、验证请求的文件格式
5、禁止跳转
6、限制请求的端口为http常用的端口 , 比如 80、443、8080、8000等
7、统一错误信息 , 避免用户可以根据错误信息来判断远端服务器的端口状态 。