美文网首页
web安全及防御 - 逻辑错误漏洞 & 代码注入

web安全及防御 - 逻辑错误漏洞 & 代码注入

作者: codingQi | 来源:发表于2019-10-30 18:11 被阅读0次

一、逻辑错误漏洞

常见的逻辑漏洞:

1. 绕过授权验证

(1)水平越权:相同级别(权限)的用户或者同一角色的不同用户之间,可以越权访问、修改或者删除的非法操作。
(2)垂直越权:不同级别或不同角色之间的越权。

2. 密码找回逻辑漏洞

3. 支付逻辑漏洞

(1)商品数量为负数
(2)0元购买商品

4. 指定账户恶意攻击

主要就是封锁指定账户,图取其他利益。

二、代码注入

  • 按照OWASP定义:在客户端提交的代码在服务器端接收后当作动态代码或嵌入文件处理。
    以下漏洞可以视为代码注入:
    (1)OS命令执行
    (2)文件包含
    (3)动态函数调用

  • 按照Wikipedia定义:客户端所提交的数据未经检查就让Web服务器去执行,这个范围比OWASP定义的代码注入范围要广阔的多。
    以下漏洞可以视为代码注入:
    (1)SQL注入
    (2)XML注入
    (3)XSS
    (4)文件包含
    (5)命令执行
    (6)等。

1. XML注入

XML是 The Extensible Markup Language(可扩展标识语言)的简写。XML最初设计的目的是弥补HTML的不足,后来逐渐用于网络数据的转换和描述。XML的设计宗旨是传输数据,并非显示数据。

XML注入是通过改写XML实现的,与XSS跨站漏洞相似,此漏洞利用成功的关键点就是闭合XML标签。

修复:只需要将预定义字符进行转义即可。

2. XPath注入

XPath即为XML路径语言,XPath基于XML的树状结构,提供在数据结构树中寻找节点的能力。简单的说,XPath就是选取XML节点的一门语言。

通过XPath注入攻击,攻击者可以攻击XML,XPath与SQL注入的方式类似。
//user[username/text()='admin' and password/text()='admin888' or 1=1]

笔者建议,对于一些敏感信息,不要使用XML传输,如果一定要使用XML,建议尽量使用密文传输。

XPath注入的预防是比较简单的,没有防御SQL注入那么复杂。最重要的是对预定义字符的转换。

3. JSON注入

即就是在json中插入恶意字符,破坏json结构。

如:
正常为"password": "admin888",如果将password的值改为admin"888,则结果为:"password": "admin"888"

防御:
只需要对其关键字符进行转义即可:"password": "admin\\"888"

4. HTTP Parameter Pollution(http参数污染)

  • 请求url上会有重复参数的时候。
  • 根据不同的语言和环境,对于http参数的重复字段的值取得不一样。
  • PHP取须后一项,Servlet取第一项。

http参数污染经常用来绕过一些Web应用防火墙(WAF)。简单来说WAF在脚本还未接收到请求之前就开始对数据进行校验,如果未发现恶意代码,则交给脚本处理,如果发现恶意代码,就进行拦截,不再交给脚本处理。

例如:
某个WAF防火墙模版定义数据中不允许出现select关键字,WAF取值验证时可能会选择第一项参数值,而脚本取值与WAF则不同,这样就有可能绕过WAF的数据验证。

PHP: News.php?id=1&id=select username, password from admin--

WAF取id值为1,而PHP取id值为select username, password from admin--

ASP.net: news.aspx?id=1;&id=s&id=e&id=c&id=t
而ASP.net将会把多个相同参数项的值连接在一起,这样http参数污染就极有可能绕过某些WAF防火墙。

相关文章

  • web安全及防御 - 逻辑错误漏洞 & 代码注入

    一、逻辑错误漏洞 常见的逻辑漏洞: 1. 绕过授权验证 (1)水平越权:相同级别(权限)的用户或者同一角色的不同用...

  • web安全及防御 - SQL注入漏洞

    SQL注入漏洞(SQL injection)是Web层面最高危的漏洞之一。在2008年至2010年期间,SQL注入...

  • 旗鱼云梯Linux网络安全防火墙(WAF防火墙)

      在这个乱象横生的年代,SQL注入、XML注入,跨站脚本攻击,PHP代码注入满天飞,如何进行web应用安全防御,...

  • web安全及防御 - 上传漏洞

    Web应用程序通常会有文件上传的功能,例如,在BBS发布图片、在个人网站发布Zip压缩包、在招聘网站上发布DOC格...

  • 安全包开发整体架构

    SSRF防御 SSRF安全漏洞以及防御实现 XSS防御 xss漏洞以及防御实现 CSRF防御 CSRF安全漏洞以及...

  • 二次注入

    二次注入漏洞是一种在Web应用程序中广泛存在的安全漏洞形式。相对于一次注入漏洞而言,二次注入漏洞更难以被发现,但是...

  • SQL 注入

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • 关于SQL注入与避免

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • 避免SQL注入

    什么是SQL注入 SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞。...

  • web安全测试(2)

    本章主要介绍常见web安全漏洞。 一、SQL注入 SQL注入(SQL Injection),是最常见影响非常广泛的...

网友评论

      本文标题:web安全及防御 - 逻辑错误漏洞 & 代码注入

      本文链接:https://www.haomeiwen.com/subject/aszovctx.html