这些常见的漏洞和修复方法你知道吗?

1、SQL注入

描述:Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了原有SQL语句逻辑,攻击者可以利用这个漏洞执行任意SQL语句。

修复方法:

代码层最佳防御方案:使用预编译sql语句查询和绑定变量。

  1. 使用预编译语句,使用PDO需要注意不要将变量直接拼接到PDO语句中。所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。当几乎所有的数据库系统都提供了参数化SQL语句执行接口,使用此接口可以非常有效的防止SQL注入攻击。
  2. 对进入数据库的特殊字符进行转义处理或编码转换。
  3. 确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
  4. 数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
  5. 网站每个数据层的编码同意,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
  6. 严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
  7. 避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
  8. 过滤危险字符。

2、XSS

描述:web程序代码中对用户提交的参数未做过滤或过滤不严,导致参数中的特殊字符破坏了HTML页面的原有逻辑,攻击者可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫、篡改页面实施钓鱼攻击、以及诱导用户再次登录,然后获取其登录凭证等。

XSS攻击对web服务器本身虽无直接危害,但是它借助网站进行传播,对网站用户进行攻击,窃取网站用户账号身份信息等,从而也会对网站产生较严重的威胁。XSS攻击可以导致这些危害:钓鱼欺骗、网站挂马、身份盗用、盗取网站用户信息、垃圾信息发送、劫持用户web行为、XSS蠕虫等。

修复建议:

XSS漏洞本质上是一种HTML注入,也就是将HTML代码注入到网页中,那么其防御的根本就是在将用户提交的代码显示到页面上时做好一系列的过滤与转义。

  1. 过滤输入的数据,这里的输入不仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
  2. 不仅验证数据的类型,还要验证其格式、长度、范围和内容。
  3. 不仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
  4. 对输出到页面的数据进行相应的编码转换,如HTML实体编码、JS编码等。对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点也要进行检查。

3、CSRF

描述:CSRF是跨站请求伪造,不攻击网站服务器,而是冒充用户在站内的正常操作。通常由于服务端没有请求做严格过滤引起的。CSRF会造成密码重置,用户伪造等问题,可能引发严重后果。绝大多数网站是通过cookie等方式辨识用户身份,再予授权的。所以要伪造用户的正常操作,最好的方法是通过XSS或链接欺骗等途径,让用户在本机发起用户所不知道的请求。CSRF攻击会令用户在不知情的情况下攻击自己已经登录的系统。

修复建议:

  1. 验证请求的Referer是否来自本网站,但可被绕过。
  2. 在请求中加入不可伪造的token,并在服务端验证token是否一致或正确,不正确则丢弃拒绝服务。

4、SSRF

漏洞描述:通俗来说就是我们可以伪造服务器端发起的请求,从而获取客户端所不能得到的数据。SRRF漏洞形成的原因主要是服务器所提供的接口中包含了所要请求的内容的URL参数,并且对客户端所传输过来的URL参数进行过滤。

修复建议:

  1. 禁用不需要的协议,只允许HTTP和HTTPS请求
  2. 白名单的方式限制访问的目标地址,禁止对内网发起请求
  3. 过滤或屏蔽请求返回的详细信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一类型的文件,那么把返回结果展示给用户之前先验证返回的信息是否符合标准
  4. 验证请求的文件格式
  5. 禁止跳转
  6. 限制请求的端口为http常用的端口,比如80、443、8080、8000等
  7. 统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。

5、任意命令/代码执行

描述:命令或代码执行漏洞是指代码未对用户可控参数做过滤,导致直接带入执行命令和代码,通过漏洞执行恶意构造的语句,执行任意命令或代码。攻击者可在服务器上执行任意命令,读写文件操作等,危害巨大。

修复建议

  1. 严格过滤用户输入的数据,禁止执行非语气系统命令
  2. 减少或不使用代码或命令执行函数
  3. 客户端提交的变量在放入函数钱进行检测
  4. 减少或不适用危险函数

6、任意文件上传

描述:文件上传漏洞通常由于代码中对文件上传功能所上传的文件过滤不严或web服务器相关解析漏洞未修复而造成的,如果文件上传功能代码没有严格限制和验证用户上传的文件后缀、类型等,攻击者可通过文件上传点上传任意文件,包括网站后门文件控制整个网站。

修复建议:

  1. 对上传文件类型进行验证,除在前端验证外在后端也进行验证。后端可以进行扩展名检测、重命名文件,MIME类型检测以及限制上传文件的大小等限制来防御,或是将上传的文件其他文件存储服务器中。
  2. 严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关上传文件目录执行权限,防止木马执行。
  3. 对上传文件格式进行严格校验,防止上传恶意脚本文件
  4. 严格限制上传的文件路径
  5. 文件扩展名服务端白名单校验
  6. 文件内容服务端校验
  7. 上传文件重命名
  8. 隐藏上传文件路径

7、文件包含

漏洞描述:指程序在处理包含文件的时候没有严格控制。攻击者可以利用这个漏洞先把上传的文件、网站日志文件等作为代码执行或直接显示,或者包含远程服务器上的恶意文件,进而获得服务器权限

修复建议:

  1. 严格检查变量是否已经初始化
  2. 对所有输入提交可能包含的文件地址,包括服务器本地文件及远程文件,进行严格检查。
  3. 严格检查问价包含函数中的参数是否外界可控。

8、弱口令

漏洞描述:网站的用户账号有弱口令,攻击者可以通过弱口令直接进入网站,然后进行下一步攻击。用弱口令登录网站管理后台,则可以执行任意管理员的操作。

修复建议:

  1. 强制用户修改默认口令,或者使用用户自定义初始密码策略
  2. 完善密码策略
  3. 增加人机验证机制,限制IP访问次数

9、暴力破解

漏洞描述:因为登录页面没有人机验证机制,没有验证码、有验证码但可以重复利用以及无登录错误次数限制,导致攻击者可通过暴力破解获取用户登录账号和密码。

  1. 如果用户登录次数超过设置的阈值,则锁定账号
  2. 如果IP登录次数超过设置的阈值,则锁定IP
  3. 增加人机验证机制
  4. 验证码必须在服务器端进行校验,客户端的校验都是不安全的

10、越权访问

漏洞描述:由于没有对用户访问角色的权限进行严格检查和限制,导致当前账号可以对其他账号进行相关操作。

修复建议:

  1. 对用户访问角色的权限进行严格的检查及限制
  2. 在一些操作时可以使用session对用户的身份进行判断和控制

11、网页木马

漏洞描述:经渗透测试发现目标站点存在webshell,攻击者可直接爆破口令使用木马,非常低成本的进行恶意操作。

  1. 确认并删除木马文件,并进行本地文件漏洞扫描排查是否还存在其他木马
  2. 发现并及时修复已存在的漏洞
  3. 通过查看日志、服务器杀毒等安全排查,确保服务器未被留下后门

以上就是常见的漏洞和修复方法,你还知道那些常见漏洞?

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值