这篇文献,作者针对基于PHP语言开发的web应用程序产生的污点型漏洞,提出了一种静态代码分析检测的方法。

      先解释一下什么叫污点型漏洞,由于对于用户的输入没有进行有效的过滤,使其进入敏感函数,导致漏洞产生。

例如SQL注入,XSS,任意文件上传下载,命令执行,代码注入等类似这样的就称之为“污点型”漏洞。针对在没有网站源码时,现在有动态测试技术,缺陷在于代码覆盖率较低,容易常产生漏报。静态分析技术,作者觉得由于PHP语言具有动态性和弱类型两种特点,对其建模难度较大。将对C语言的静态分析技术直接用于PHP分析技术的精确度不够。(个人认为改改精度也是个不错的移植过程)

  作者的具体思路是:对每个PHP文件和函数构造控制流图(就是CFG),通过变量回溯的方式提取有效路径(这里的有效路径,个人理解为输入点到敏感函数之间的路径),以减少不必要的路径分析,以及通过函数摘要的方式优化分析效率。通过对PHP内置特征的建模进行更加精确的字符串分析和漏洞模型构建。实现了原型系统TVFinder,并验证了其可行性,还发现了大量未公开漏洞。

  原型系统主要由两大块组成:预处理阶段和污点分析阶段。

其中预处理阶段主要是基于PHP内置函数token_get_all和token_name对PHP程序分词,生成AST(抽象语法树),进而在AST的基础上进行PHP的语法和词法分析,精确地字符串分析提取函数摘要,并创建CFG,其中函数摘要的准确性和CFG的完整性,保证了污点分析的准确性和效率。污点分析阶段在前一阶段的基础上通过变量回溯的方法提取有效路径,将无关的路径“剪枝”,判断用户输入到达敏感点的路径上是否经过了有效的过滤,进而判断是否存在漏洞。

  本篇文献主要是针对PHP应用程序的面向过程的代码块,主要以SQL注入漏洞和任意文件读取漏洞为检测对象。

最新文章

  1. JQuery插件开发简单实例
  2. 基础笔记12(socket,url网络通信)
  3. [Java] Java解析XML格式Response后组装成Map
  4. join / left join / right join
  5. Python异常总结(出处: 鱼C论坛)
  6. js插件添加打印功能
  7. SqlDataReader执行带输出参数存储过程 错误分析
  8. TestPointer
  9. linux内核下载
  10. MFC消息映射与命令传递
  11. Qt+SQLite数据加密的一种思路(内存数据库)
  12. 让textbox紧贴IME
  13. 201521123085 《Java程序设计》 第3周学习总结
  14. String s=new String("abc")产生了几个对象?[权威面试版]
  15. Linux每天一个命令:iostat
  16. JQuery之Attr()与Prop()方法
  17. OC对象本质
  18. 20165313 《Java程序设计》第六周学习总结
  19. BZOJ 1024 [SCOI2009]生日快乐 (搜索)
  20. (简单的物理题)Bungee Jumping

热门文章

  1. requirejs、vue、vuex、vue-route的结合使用,您认为可行吗?
  2. java.net.SocketException: 权限不够
  3. JS 中 原生方法 (三) --- Date 日期
  4. [Leetcode]669 Trim a Binary Search Tree
  5. ueditor上传图片尺寸过大导致显示难看的解决办法
  6. properties配置文件读取操作总结【java笔记】
  7. CSRF 漏洞测试
  8. SpringMVC学习笔记之二(SpringMVC高级参数绑定)
  9. [零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念
  10. Android ios嵌套web页面