• PHP源代码安全审计工具之WAP


    http://awap.sourceforge.net/

    WAP是一种源代码静态分析和数据挖掘工具,用于检测和纠正用PHP 4.0或更高版本编写的Web应用程序中的输入验证漏洞,且误报率较低。

    WAP检测并纠正以下漏洞:

      SQL Injection (SQLI)

      Cross-site scripting (XSS)

      Remote File Inclusion (RFI)

      Local File Inclusion (LFI)

      Directory Traversal or Path Traversal (DT/PT)

      Source Code Disclosure (SCD)

      OS Command Injection (OSCI)

      PHP Code Injection

    该工具从语义上分析源代码。

    更准确地说,它会进行污点数据流分析以检测输入验证漏洞。

    污点分析的目的是跟踪由入口点 ($_GET, $_POST 数组) 插入的恶意输入,并验证它们是否到达了一些敏感的接收器,即可被恶意输入利用的PHP函数。

    检测到之后,该工具将使用数据挖掘来确认漏洞是真实的还是误报的。

    最后,通过在源代码中插入修订 (小段代码) 来纠正实际漏洞。

    WAP是用Java语言编写的,并且由三个模块组成:

      代码分析器: 由树生成器和污点分析器组成。该工具集成了ANTLR生成的词法分析器和解析器,并基于用PHP语言编写的语法和树语法。树生成器使用词法分析器和解析器为每个PHP文件构建AST抽象语法树。污点分析器在AST中导航进行污点分析,以检测潜在的漏洞。

      误报预测因子: 由监督训练有素的数据集组成,实例分类为漏洞和误报,并由逻辑回归机器学习算法组成。对于由代码分析器检测到的每个潜在漏洞,此模块都会收集定义误报的属性的存在。然后,逻辑回归算法接收到它们并将实例分类为是否为误报或真实漏洞。

      代码校正器: 每个真实的漏洞都会通过更正其源代码来删除。此模块针对漏洞的类型选择修复程序,该修复程序将删除漏洞并在源代码中指示要插入此修复程序的位置。然后,通过插入修补程序来更正代码,并创建新文件。

    wap-2.1

    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    *                           WAP - Web Application Protection                          *
    *                    Source Code Static Analysis & Data Mining Tool                   *
    *                                     version 2.1                                     *
    * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
    
    Usage:
      wap [options] -p <project>
      wap [options] file(s)
    
    选项: 
      -a               检测漏洞而无需更正它们
      -s               仅显示全局摘要
      -sqli            检测SQLI漏洞 如果不与"-a"一起使用还将自动更正它们
      --dbms <dbms>    指定应用程序使用的DBMS数据库管理系统 可用的DBMS包括: MySql, DB2, PostgreSQL 该选项仅与"-sqli"选项一起使用并且默认情况下选择了MySQL数据库管理系统 用于DBMS的选项包括: mysql, db2, pg
      -ci              检测 RFI/LFI/DT/SCD/OS/PHP Code Injection 漏洞 如果不与"-a"一起使用还将自动更正它们
      -xss             检测反射型和存储型XSS漏洞 如果不与"-a"一起使用还将自动更正它们
      -all             检测所有类型的漏洞 与"-sqli -ci -xss"相同 如果不与"-a"一起使用还将自动更正它们
      -out <arg>       将标准输出转发到参数中指定的文件
      -p <project>     指定完整的项目位置文件 指定一个或多个PHP文件的完整路径
      -h, -help        显示此信息
  • 相关阅读:
    MySQL性能调优my.cnf详解
    Linux学习之CentOS(二十八)--RAID原理基础及Linux下软件RAID配置
    Linux学习之CentOS(二十)--CentOS6.4下修改MySQL编码方法
    Linux学习之CentOS(二十一)--Linux系统启动详解
    Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
    Linux下oracle数据库启动和关闭操作
    编程之美——判断一个数是否为2的幂
    编程之美——求两个整数不同位数的个数
    LeetCode——Increasing Triplet Subsequence
    LeetCode——Find Minimum in Rotated Sorted Array II
  • 原文地址:https://www.cnblogs.com/f0rsaken/p/13404018.html
Copyright © 2020-2023  润新知