常见安全漏洞及修复方案(代码片段)

旺仔哥 旺仔哥     2022-12-14     462

关键词:

1.1 跨站脚本(XSS)漏洞

漏洞描述

跨站脚本攻击(Cross Site Scripting, XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、偷取密码、传播恶意代码等攻击行为。 恶意的攻击者将对客户端有危害的代码放到服务器上作为一个网页内容, 使得其他网站用户在观看此网页时,这些代码注入到了用户的浏览器中执行,使用户受到攻击。一般而言,利用跨站脚本攻击,攻击者可窃会话 Cookie 从而窃取网站用户的隐私。

漏洞危害

  • 钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼 JavaScript 以监控目标网站的表单输入。
  • 网站挂马:跨站时利用 IFrame 嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马攻击。
  • 身份盗用:Cookie 是用户对于特定网站的身份验证标志,XSS 可以盗取到用户的 Cookie,从而利用该 Cookie 盗取用户对该网站的操作权限。如果一个网站管理员用户 Cookie 被窃取,将会对网站引发巨大的危害。
  • 盗取网站用户信息:当能够窃取到用户 Cookie 从而获取到用户身份时,攻击者可以获取到用户对网站的操作权限,从而查看用户隐私信息。
  • 垃圾信息发送:比如在 SNS 社区中,利用 XSS 漏洞借用被攻击者的身份发送大量的垃圾信息给特定的目标群。
  • 劫持用户 Web 行为:一些高级的 XSS 攻击甚至可以劫持用户的 Web 行为,监视用户的浏览历史,发送与接收的数据等等。
  • XSS 蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数据、实施 DDoS 攻击等。

解决方案

  • 对参数做 html 转义过滤,要过滤的字符包括:单引号、双引号、大于号、小于号,& 符号,防止脚本执行。
  • 在变量输出时进行 HTML ENCODE 处理。

1.2 CSRF 漏洞

漏洞描述

跨站请求伪造(Cross-Site Request Forgery, CSRF),恶意网站通过脚本向当前用户浏览器打开的其它页面的 URL 发起恶意请求,由于同一浏览器进程下 Cookie 可见性,导致用户身份被盗用,完成恶意网站脚本中指定的操作。

漏洞危害

  • 信息泄露:如登录ID,隐私信息等。
  • 恶意操作:如加好友,加购物车,删除数据等。

解决方案

CSRF漏洞修复方案主要思路有两类:

  • 验证请求是信任页面发起,这类修复方案有:
    • 在表单中填充一次性随机的 csrf token 防止攻击者伪造 form 表单进行 CSRF。同时将此串 token 置入 session,在后端再进行一次一致性校验。
    • referer 验证。
  • 验证请求是合法用户发起,这类修复方案有:
    • 验证码
    • 密码验证
    • OTP 验证

1.3 HTTP Header 注入漏洞

漏洞描述

Web 程序代码中把用户提交的参数未做过滤就直接输出到 HTTP 响应头中,导致攻击者可以利用该漏洞来注入到 HTTP 响应头中实现攻击。

解决方案

  • 对参数做合法性校验以及长度限制,谨慎的根据用户所传入参数做 HTTP 响应的 Header 设置。
  • 在设置 HTTP 响应头时,过滤回车换行 %0d%0a、%0D%0A 字符。

1.4 目录遍历漏洞

漏洞描述

目录遍历是由于 Web 服务器或 Web 应用程序对用户输入文件名称的安全性验证不足而导致的一种安全漏洞,使得攻击者通过 HTTP 请求和利用一些特殊字符就可以绕过服务器的安全限制,访问任意受限的文件(可以是 Web 根目录以外的文件),甚至执行系统命令。

解决方案

  • 严格检查文件路径参数,限制在指定的范围。
  • 严格限制文件路径参数,不允许用户控制文件路径相关的参数,限定文件路径范围。

1.5 SQL 注入漏洞

漏洞描述
SQL 注入攻击(SQL Injection),被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。 在设计不良的程序当中,忽略了对输入字符串中夹带的 SQL 指令的检查,那么这些夹带进去的指令就会被数据库误认为是正常的 SQL 指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。

漏洞危害

  • 机密数据被窃取
  • 核心业务数据被篡改
  • 网页被篡改
  • 数据库所在服务器被攻击变为傀儡主机,甚至企业网被入侵

解决方案

  • 所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到 SQL 语句中。
  • 对进入数据库的特殊字符 '"\\<>&*; 等进行转义处理,或编码转换。
  • 确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为 int 型。
  • 数据长度应该严格规定,能在一定程度上防止比较长的 SQL 注入语句无法正确执行。
  • 网站每个数据层的编码统一,建议全部使用 UTF-8 编码,上下层编码不一致有可能导致一些过滤模型被绕过。
  • 严格限制网站所用数据库账号的权限,给此用户仅提供能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
  • 避免网站显示 SQL 错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。

1.6 文件下载漏洞

漏洞描述

Web 应用程序在处理文件下载时,接受用户指定的路径和文件名进行下载,攻击者利用此漏洞来下载服务器的其它文件甚至任意文件(源代码、数据库甚至 passwd 等)。

解决方案

  • 限制可下载文件所在的目录为预期范围。
  • 通过指定文件编号的方式来定位待下载文件。

1.7 文件上传漏洞

漏洞描述

文件上传的 Web 程序未对文件类型和格式做合法性校验,导致攻击者可以上传 Webshell 或者非期望格式的文件。

解决方案

  • 对上传文件的大小和类型进行校验,定义上传文件类型白名单。
  • 保存上传文件的目录不提供直接访问。

web系统常见安全漏洞介绍及解决方案-sql注入(代码片段)

先看一下目录一、常见漏洞类型二、SQL注入1、SQL注入危险性、可能原因2、场景重现3、sql盲注4、检测⽅法5、防护⽅案三、使用ORM框架一、常见漏洞类型关于web安全测试,目前主要有以下几种攻击方法:XSS跨站脚本攻击CSR... 查看详情

web系统常见安全漏洞介绍及解决方案-csrf攻击(代码片段)

🐳博客主页:举杯同庆–生命不息,折腾不止🌐订阅专栏:『Web安全』📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀!👉关注✨、点赞👍、收藏📂、评论。... 查看详情

tomcatexample应用信息泄漏漏洞及修复(代码片段)

文章目录Tomcat介绍漏洞描述受影响范围漏洞复现修复方案免责声明Tomcat介绍Tomcat是一款开源的Web应用服务器软件。Tomcat属于轻量级应用服务器,在中小型系统和并发访问用户不多的场合下被普遍使用,是开发和调试JSP程... 查看详情

tomcatexample应用信息泄漏漏洞及修复(代码片段)

文章目录Tomcat介绍漏洞描述受影响范围漏洞复现修复方案免责声明Tomcat介绍Tomcat是一款开源的Web应用服务器软件。Tomcat属于轻量级应用服务器,在中小型系统和并发访问用户不多的场合下被普遍使用,是开发和调试JSP程... 查看详情

nginx漏洞扫描及修复方案(代码片段)

...描缓慢的HTTP拒绝服务攻击漏洞等级:中修改建议Nginx修复建议具体nginx配置文件WebSphere修复建议Weblogic修复建议Apache修复建议IHS服务器F5负载均衡修复建议IIS服务器漏洞扫描结果漏洞扫描OSS2.0物联网创新业务系统进行web类安全... 查看详情

python中的10个常见安全漏洞及修复方法

...发人员却根本不知道这些。以下是我总结的10个Python常见安全漏洞,排名不分先后。1、输入注入注入***影响广泛且很常见,注入有很多种类,它们影响所有的语言、框架和环境。SQL注入是直接编写SQL查询(而非使用ORM)时将字符... 查看详情

mapreduce常见错误及解决方案(代码片段)

【MapReduce】常见错误及解决方案导包容易出错。尤其Text和CombineTextInputFormat。Mapper中第一个输入的参数必须是LongWritable或者NullWritable,不可以是IntWritable.报的错误是类型转换异常。java.lang.Exception:java.io.IOException:Illegalpartitionfor... 查看详情

怎么样在php中使用fastcgi解析漏洞及修复方案

参考技术A(Nginx用户可以选择方案一或方案二,IIS用户请使用方案一)方案一,修改php.ini文件,将cgi.fix_pathinfo的值设置为0。完成后请重启PHP和NGINX(IIS)。方案二,在Nginx配置文件中添加以下代码:复制代码代码如下:  if($fas... 查看详情

k8s常见问题及解决方案(代码片段)

K8s常见问题及解决方案我已经通过k8s官方提供的解决方案安装的docker,并且docker可以成功运行。启动minikube的时候出现的问题xiaoqu@k8s2:~$sudominikubestart--driver=none[sudo]passwordforxiaoqu:Sorry,tryagain.[sudo]passwordforxiaoqu:??minikubev1.12.1onUb 查看详情

代码质量管理工具:sonarqube常见的问题及正确解决方案(代码片段)

代码质量管理工具:SonarQube常见的问题及正确解决方案SonarQube简介Sonar是一个用于代码质量管理的开放平台。通过插件机制,Sonar可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如Hudson/Jenkins等... 查看详情

hadoop完全分布式常见错误及解决方案(代码片段)

常见错误及解决方案1)防火墙没关闭、或者没有启动YARN2)主机名称配置错误3)IP地址配置错误4)ssh没有配置好5)root用户和atguigu两个用户启动集群不统一6)配置文件修改不细心7)不识别主机名称8&#x... 查看详情

iis常见漏洞(中间件常见漏洞)(代码片段)

目录1.IIS6.x解析漏洞2.IIS7.x解析漏洞3.HTTP.SYS远程代码执行漏洞MS15-0344.IIS-PUT任意文件写入5.短文件名漏洞1.IIS6.x解析漏洞(1)该版本默认会将*.asp;.jpg此种格式的文件名,当成Asp解析,原理是服务器默认不解析;号及... 查看详情

linux常见问题及解决方案(代码片段)

1[解决]dpkg被中断问题Linux系统安装软件是有时会碰到“dpkg被中断,您必须手工运行sudodpkg–configure-a解决此问题”,然而按照提示运行却并没能很好的解决问题。其实导致这个问题的主要原因是因为/var/lib/dpkg/updates文件下的文件有... 查看详情

simpledateformat线程不安全原因及解决方案(代码片段)

线程不安全验证:/***SimpleDateFormat线程安全测试*〈功能详细描述〉**@author17090889*@see[相关类/方法](可选)*@since[产品/模块版本](可选)*/publicclassSimpleDateFormatTestprivateSimpleDateFormatsimpleDateFormat=newSimpleDateFormat("yyyy-MM- 查看详情

游族马寅龙:常见信息安全风险及应对方案

...活动特别邀请游族网络信息化中心总监马寅龙,以「常见信息安全风险及应对方案」为题进行分享。马寅龙是 查看详情

游族马寅龙:常见信息安全风险及应对方案

...活动特别邀请游族网络信息化中心总监马寅龙,以「常见信息安全风险及应对方案」为题进行分享。马寅龙是 查看详情

如何避免出现sql注入漏洞(代码片段)

...SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案。作者|阿里云安全团队来源|阿里技术公众号‍‍‍‍‍‍‍‍一前言本文... 查看详情

常见系统安全漏洞及解决方案

一、SQL注入漏洞漏洞说明SQL注入攻击是Web安全领域中一种最为常见的攻击方式,其本质是将用户输入的数据当做SQL语句代码一部分执行。这些攻击通常是发生在将不可信的数据作为命令或查询语句的一部分,拼接到程序... 查看详情