内容简介:and V.N. Venkatakrishnan, University of Illinois at Chicago
作者: {wh1t3p1g}@ArkTeam
原文作者: Abeer Alhuzali, Rigel Gjomemo, Birhanu Eshete,
and V.N. Venkatakrishnan, University of Illinois at Chicago
原文标题: NAVEX: Precise and Scalable Exploit Generation for Dynamic Web Applications
原文会议:the 27th USENIX Security Symposium
原文链接: https://www.usenix.org/conference/usenixsecurity18/presentation/alhuzali
现代的WEB应用程序多采用动态生成的方式来实现相应功能,这使得对于此类漏洞分析存在挑战性。本文提出采用动静态结合的方式,来自动识别漏洞并构建利用代码。针对提出的方法,作者实现了NAVEX,它是一种可以扩展的自动化漏洞分析和利用生成的工具。在作者的实验中,使用NAVEX对320w行 PHP 代码进行建库分析,发现并生成了204个漏洞利用。
-
问题的提出
-
发现可达的sink点
在现代的Web应用中,从source点到sink点的代码执行路径通常跨越多个模块或多个文件,并且在代码执行路径上存在可能的净化函数(1.内置净化函数2.隐式净化函数3.自定义净化函数),对可能存在漏洞的source点进行相关安全处理,导致整个执行链路不可攻击。针对这个问题,作者提出使用约束求解器,来推断该链是否可被攻击。
-
WEB的动态特性
现代的Web应用,常通过动态生成表单或链接,静态的方式无法检测此类动态生成的source点。针对这个问题,作者使用了动态执行(爬虫)的方式来解决这个问题。
-
可扩展性
由于现代Web应用的复杂性,构建漏洞利用代码需要分析客户端、服务器端以及数据库端。而且漏洞的类型也在不断增加,这就要求分析 工具 具备可扩展性来应对复杂多变的Web应用。
-
-
方法提出
程序实现共包括两个部分a. 漏洞sink点识别b. 具体的攻击生成
-
漏洞sink点识别
- 攻击字典 {sink点,净化函数,遍历类型,攻击语句}
-
代码属性图构建
在代码属性图上添加了净化标签和数据库限制标签,用于后面做约束求解器的条件
- 图遍历算法 {前向算法,后向算法}
- 漏洞利用字符串生成 得到约束求解器的另一个条件
-
-
具体的攻击生成
-
动态执行
采用爬虫的方式,获取表单和链接,使用约束求解器自动化生成符合要求的表单内容提交。
-
导向图生成
由动态执行步骤生成的有向图G=<N,E>,N代表HTTP请求集合,E代表ni->nj的有向边,表示从当前ni这个http请求通过表单或链接的方式定向到nj。
-
最终的漏洞利用生成
利用导向图的搜索算法,找到最终的url,并将参数部分填入相关漏洞Payload
-
3. 讨论
作者在代码属性图的基础上,添加了净化标签和数据库标签,并且使用了净化约束,数据库查询约束和攻击字串的约束作为约束条件,用Z3约束求解器来判断该代码链是否可被攻击。但是注意到的是作者并没有明确处理基于类开发的CMS的漏洞检测,或许这个问题可以进一步发掘。其次关于微软开发的Z3约束求解器的作用,可以在后续的研究中应用这个方法来处理一些类似机器学习的分类效果。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- CodeAlchemist:用于在JavasScript引擎中查找漏洞的代码生成工具
- 【PPT分享】中国科学院大学吴炜——FUZE:辅助生成内核UAF漏洞利用
- 实战生成对抗网络(二):生成手写数字
- 实战生成对抗网络[2]:生成手写数字
- 020.Python生成器和生成器函数
- faker生成器生成虚拟数据的Python模块
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。