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 - 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 显示此信息

WAP-2.1的更多相关文章

  1. wap支付宝接口的问题

    今天在支付宝接口开发时,遇到的两个坑 第一个: https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.8nHr4i& ...

  2. 淘宝WAP版小BUG分析

    前几天发现的一个淘宝WAP版的小BUG,就是用桌面版chrome看的时候产品评价中的图片显示不出来,都是图裂了. 这是什么原因呢?图片为什么会显示不出来呢?淘宝的技术人员.测试人员不可能没发现啊.开启 ...

  3. wap

    1.wap下拉刷新丑陋版 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  4. WAP站点(IIS/Apache)的服务器设置

    Server 端的设置IIS服务器:为了使IIS支持WAP(WML)页面的发布,在IIS的Web站点的属性 / HTTP信息中设置WAP的MIME属性,添加如下的MIME类型:扩展名 内容类型(MIM ...

  5. 支付宝WAP支付接口开发(Node/Coffee语言)

    此博客不更新很久了, 更新的文档在这, 有兴趣到这里围观: http://neutra.github.io/2013/%E6%94%AF%E4%BB%98%E5%AE%9DWAP%E6%94%AF%E ...

  6. 数据结构《21》----2014 WAP 初试题----Immutable queue

    2014 WAP初试题----实现一个不可变的队列: 看似很简单..实则,不同的版本效率的差距可能是巨大的..甚至难以想象.. 之前用STL库的queue进行了对比,差别非常大.. 用上一篇文章的im ...

  7. 我刚知道的WAP app中meta的属性

    之前我一直做的都是WEB前端开发,来北京以后面试了一个移动前端开发,WAP前端开发. 其实在原来公司的时候也做过这方面的开发,可面试的时候面试官问我,要想强制让文档与设备的宽度保持1:1,mate标签 ...

  8. 也来谈谈wap端瀑布流布局

    Definition 瀑布流布局,在视觉上表现为参差不齐的多栏布局,随着页面滚动条向下滚动,新数据不断被加载进来. 瀑布流对于图片的展现,是高效而具有吸引力的,用户一眼扫过的快速阅读模式可以在短时间内 ...

  9. wap页面笔记

    wap页面是自行应页面 必须在head中加入 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1 ...

  10. JS判断是wap端访问网站还是PC端访问,然后进行自动跳转的代码

    <script type="text/javascript"> function goPAGE() { if ((navigator.userAgent.match(/ ...

随机推荐

  1. HTTP头注入:XFF注入

    0x00:XFF是什么? X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库or某文件[通过修 ...

  2. VirtualBox上使用qemu和busybear搭建RISCV环境

    Step 1:安装一些编译riscv需要的库: sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr ...

  3. SpringMVC的学习day01

    什么是SpringMVC 基于狂神说SpringMVC课程的学习 前面已经学习了spring.javaSE.javaweb.mybatis等知识,今天开始学习springMVC,是ssm框架的最后一个 ...

  4. 2023-03-01 'react-native' 不是内部或外部命令,也不是可运行的程序 这个报错是因为你没有全局安装react-native的脚手架,请执行下面代码全局安装react-native脚手架👇

    问题描述:想要初始化一个新的rn项目,执行[react-native init myApp --version 0.68.2],报错:'react-natvie' 不是内部或外部命令,也不是可运行的程 ...

  5. 如何用python脚本采集某网图片

    一.前言: 今天学了两个工具urlopen  和etree,这两个小工具至关重要.urllib.request模块提供了最基本的构造HTTP请求的方法,利用它可以模拟浏览器的一个请求发起过程,同时它还 ...

  6. 日常遇到bug小记

    archery查询后显示缺少空格: https://github.com/hhyo/Archery/pull/1449 archery-mongo数据库查询skip不生效: https://githu ...

  7. 你的ASP.NET Pages项目编译时为何总是很慢慢慢~?

    摘要 很多同学在运行同一个Asp.net Pages项目解决方案时会发现,有时候很快,有时候超级慢,甚至时间超过10几分钟才可以完全编译完,随后才能调试! 其实这都是跟配置有关 有句话说的话,约定  ...

  8. 网络-6 IPV6(上)

    一.iPv4与ipv6对比 1.ipv4与ipv6优缺点 1.1 Ipv4与ipv6对比,ipv4中的切片使用的三个字段:identification   flags   fragment offse ...

  9. ansible笔记第二章(ansible-varable变量)

    (1)变量类型 1.1在playbook文件中的play使用变量 [root@m01 project1]# cat vars_1.yml - hosts: oldboy vars:   - web_p ...

  10. Winform 在高分变率显示器中窗体变模糊配置方式

    我们知道  Winform 前身与 XP 系统 同一时代出生 , 那时候显示器还是LCD 和 大头机 ,显示器普遍  96 DPI  . 随着显示器质量改善,2K 屏, 4K屏普及,DPI 达  19 ...