安全运维之web安全漏洞

  • A+
所属分类:安全文章

点击蓝字 · 关注我们

安全运维之web安全漏洞

SQL注入:

通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终欺骗服务器执行恶意的SQL命令。


攻击方式:

由于程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

SQL注入的本质是对于输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。

SQL注入漏洞,就是将用户可控的数据拼接进了SQL语句中,一起提交到了数据库执行。

攻击者通过注入语句,改变SQL语句执行逻辑,通过控制部分SQL语句,攻击者可以查询数据库中任何自己需要的数据,利用数据库的一些特性,可以直接获取数据库服务器的系统权限。


防御方式:

防止 SQL 注入主要是不能允许用户输入的内容影响正常的 SQL 语句的逻辑,严格限制Web应用的数据库的操作权限,给此用户提供仅仅能够满足其工作的最低权限,从而最大限度的减少注入攻击对数据库的危害。

后端代码检查输入的数据,对进入数据库的特殊字符(’,",,<,>,&,*,; 等)进行转义处理,或编码转换。

所有的查询语句建议使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到 SQL 语句中,即不要直接拼接 SQL 语句。

在应用发布之前建议使用专业的 SQL 注入检测工具进行检测,以及时修补被发现的 SQL 注入漏洞。网上有很多这方面的开源工具,例如 sqlmap、SQLninja 等。

避免网站打印出 SQL 错误信息,比如类型错误、字段不匹配等,把代码里的 SQL 语句暴露出来,以防止攻击者利用这些错误信息进行 SQL 注入。

跨站脚本(XSS):

恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的目的。

文件上传:

由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP/ASP/JSP文件,并能够将这些文件传递给PHP/ASP/JSP解释器,就可以在远程服务器上执行任意脚本。

文件包含:

在通过服务器脚本的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露甚至恶意的代码注入。

越权:

越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定,导致单个用户可以操作其他人的信息。

逻辑漏洞:

逻辑错误漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现在任意密码修改、越权访问、密码找回、交易支付金额。

文件下载:

一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。

命令执行:

指通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令的目的。

信息泄露:

当开发者不留意开发过程中的信息泄露问题,就有可能导致网站源代码的泄露、账号密码信息的泄露从而导致更加危险的漏洞利用。

接口漏洞:

1.    弱口令:弱口令没有严格和准确的定义,通常认为容易被别人(它们有可能对你很了解)猜测或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如 "123"、"abc"等,因为这样的口令很容易被别人破解。

2.    暴力破解:登录口没有设置验证码或是验证码可以重复利用,导致攻击者可以通过遍历或字典爆破等手段破解用户名和密码。



安全运维之web安全漏洞

NERCIS

扫码关注我们

了解更多安全咨询


本文始发于微信公众号(信息安全国家工程研究中心):安全运维之web安全漏洞

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: