全称”Web Application Attack and Audit Framework“——Web应用程序攻击审计框架。W3af是一个基于Python的Web应用扫描器。W3af 是一个 Web 应用程序攻击和检查框架。该项目已超过 130 个插件,其中检查 SQL 注入,跨站点脚本(XSS),本地和远程文件等。该项目的目标是要建立一个框架,以寻找和开发 Web 应用安全漏洞,很容易使用和扩展。

一、插件简介

1.1、主要插件

1、Crawl(爬取)类
职责:通过爬取网站站点来获取新的URL地址、表单、注入点。
如果用户启用了Crawl类型的多个插件,此时将产生一个循环:A插件第一次运行时发现一个新的url,w3af会将其发送到插件B。如果B插件发现一个新的url则会发送到插件A,这个过程持续进行直到所有插件都已运行且无法找到更多的信息。
2、Audit(审计)类
该类插件会向Crawl插件爬取出的注入点发送特制的POC数据以确认漏洞是否存在。
3、Attack(攻击)类
如果Audit插件发现了漏洞,Attack将会进行攻击和利用,通常会在远程服务器上返回一个shell或者比如SQL注入则会获取数据库的数据。

1.2、其他插件

1、Infrastructure(基础)插件
这类插件用来标识有关目标系统的信息,如安装的WAF,操作系统和HTTP守护进程等。
2、Grep(检索)插件
这类插件会分析其他插件发送的HTTP请求和相应并识别漏洞
3、Output(输出)插件
这类插件会将插件的数据保存到文本,xml或者是html文件中。调试的信息也会发送到输出Output插件并可保存和分析。
如果启用了text_file和xml_file这两个Output插件,则这两个都会记录有Audit插件发现的任何漏洞。
4、Mangle插件
允许修改基于正则表达式的请求和响应。
5、Broutforce插件
在爬取阶段进行暴力登陆。
6、Evasion(绕过)插件
通过修改由其他插件生成的HTTP请求来绕过简单的入侵检测规则。

二、安装

2.1、在windows上安装

官网的最新版本已经不提供windows的安装方法,目前有一个旧版的exe安装包,提供给大家下载。百度云地址如下:
链接:百度网盘 请输入提取码
密码:rpwl。
下载成功后,直接运行exe进行安装即可。
安装完成后,桌面上多了两个图标w3af Console和w3af GUI:
打开w3af GUI,会同时打开命令行界面和图形界面:
fast_scan:快速扫描模块
OWASP_TOP10:漏洞扫描器模块

2.2、在linux上安装

在开始安装之前,请确保您已准备好以下软件:
  • Git 客户端:sudo apt-get install git
  • Python 2.7,默认安装在大多数系统中 apt install python
  • Pip版本 1.1:sudo apt-get install python-pip
​git clone https://github.com/andresriancho/w3af.git
cd w3af/
./w3af_console # 大概率因为缺失依赖失败,此命令将在/tmp/w3af_dependency_install生成依赖脚本
. /tmp/w3af_dependency_install.sh # 执行依赖脚本后再执行./w3af_console

w3af具有两个用户界面,控制台用户界面和图形用户界面。
要启动控制台 UI,请执行:
$ ./w3af_console
w3af>>>

图形用户界面,您可以通过执行以下命令开始:
$ ./w3af_gui

Docker安装:
运行 Docker 安装后,以下步骤将产生一个正在运行的控制台:w3af
​$ git clone https://github.com/andresriancho/w3af.git
$ cd w3af/extras/docker/scripts/
$ sudo ./w3af_console_docker # 用户名:root,密码:w3af
w3af>>>

help:获得每个配置参数的详细帮助
view:列出所有可配置参数及其值和说明
set:用于更改值
back:返回上一个菜单,也可以使用Ctrl+C

三、插件配置

除了attack插件之外,所有插件都可以使用plugins这个配置菜单进行配置。
下面是列出 audit(审计)类型的所有插件:
w3af>>> plugins
w3af/plugins>>> list audit
|-----------------------------------------------------------------------------|
| Plugin name | Status | Conf | Description |
|-----------------------------------------------------------------------------|
| blind_sqli | | Yes | Identify blind SQL injection |
| | | | vulnerabilities. |
| buffer_overflow | | | Find buffer overflow vulnerabilities. |
...

假设要启用xss和sqli插件,需要用到以下命令:audit xss, sqli
w3af/plugins>>> audit xss, sqli
w3af/plugins>>> audit # 我们可以在audit中看到Status为Enabled。
|----------------------------------------------------------------------------|
| Plugin name | Status | Conf | Description |
|----------------------------------------------------------------------------|
| sqli | Enabled | | Find SQL injection bugs. |
| ssi | | | Find server side inclusion |
| | | | vulnerabilities. |
| ssl_certificate | | Yes | Check the SSL certificate validity |
| | | | (if https is being used). |
| un_ssl | | | Find out if secure content can also |
| | | | be fetched using http. |
| xpath | | | Find XPATH injection |
| | | | vulnerabilities. |
| xss | Enabled | Yes | Identify cross site scripting |
| | | | vulnerabilities. |
| xst | | | Find Cross Site Tracing |
| | | | vulnerabilities. |
|----------------------------------------------------------------------------|
w3af/plugins>>>

如果带上 desc命令,还会显示这个插件的详细信息 audit desc xss
w3af/plugins>>> audit desc xssThis plugin finds Cross Site Scripting (XSS) vulnerabilities.One configurable parameters exists:
- persistent_xssTo find XSS bugs the plugin will send a set of javascript strings to
every parameter, and search for that input in the response.The "persistent_xss" parameter makes the plugin store all data
sent to the web application and at the end, request all URLs again
searching for those specially crafted strings.w3af/plugins>>>

查看xss插件的配置菜单 audit config xss: 在配置菜单可以使用view列出配置参数和值说明也可以使用set进行修改,如修改True为false:
w3af/plugins>>> audit config xss
w3af/plugins/audit/config:xss>>> view
|-----------------------------------------------------------------------------|
| Setting | Value | Description |
|-----------------------------------------------------------------------------|
| persistent_xss | True | Identify persistent cross site scripting |
| | | vulnerabilities |
|-----------------------------------------------------------------------------|
w3af/plugins/audit/config:xss>>> set persistent_xss False
w3af/plugins/audit/config:xss>>> back
The configuration has been saved.
w3af/plugins>>>

四、保存配置

设置插件和框架配置后,可以保存此 配置文件中的信息
w3af>>> profiles
w3af/profiles>>> save_as tutorial
Profile saved.

配置文件将另存为文件~/.w3af/profiles/tutorial.pw3af。保存的配置 可以加载以运行新扫描:
w3af>>> profiles
w3af/profiles>>> use fast_scan
The plugins configured by the scan profile have been enabled, and their options configured.
Please set the target URL(s) and start the scan.
w3af/profiles>>>

与其他用户共享配置文件可能会有问题,因为它们包括 插件配置引用的文件的完整路径,这需要 用户共享配置文件、引用的文件,并手动编辑配置文件以 匹配当前环境。要解决此问题,该标志 已添加:self-contained
w3af>>> profiles
w3af/profiles>>> save_as tutorial self-contained
Profile saved.

五、开始扫描

5.1、配置插件

常规扫描的话,我们建议使用以下的配置运行w3af:

  • crawl类插件使用web_spider插件
  • audit 类插件设置成Enable all
  • grep类插件设置成Enable all
配置命令如下:
插件状态:

5.2、输出扫描报告——output

不设置默认只会在console上输出扫描信息。
一般我们再加上输出csv_file(表格)和html_fiel(网页)两种格式的扫描报告。
扫描报告默认会保存在/root目录下,你可以使用out config命令去设置。
保存配置——profiles      # /root/.w3af/profiles/

5.3、设置目标,开始扫描——target,start

w3af>>> target
w3af/config:target>>> set target http://ip/
w3af/config:target>>> back
w3af>>> start

六、脚本实现自动化

在开发w3af时,我们意识到需要快速简便的方法反复执行相同的步骤,因此脚本功能诞生了。w3af可以使用参数运行脚本文件。脚本文件是每行有一个命令的文本文件。示例脚本文件如下所示: -s w3af_console
plugins
output text_file
output config text_file
set output_file output-w3af.txt
set verbose True
back

七、案例

搭建服务:
​git clone https://github.com/sqlsec/ByteCTF2021-Final-SEO.git
cd ByteCTF2021-Final-SEO/Dockerfile
docker-compose up -d
web服务:http://192.168.11.135:80
检测到可能的sql注入点

八、参考

Installation — w3af - Web application attack and audit framework 2019.1.2 documentation

w3af · 渗透工具使用指南 · 看云

web渗透测试在线网站_RuleZero的博客-CSDN博客_渗透测试网站

w3af 基于Python的Web应用扫描器相关推荐

  1. 学习《Flask Web开发:基于Python的Web应用开发实战》分享

    学习<Flask Web开发:基于Python的Web应用开发实战>分享一直在说学习Python,对同事,对朋友,都说我正在学习Python,这无形给自己一定的压力,促使自己要去学习,进步 ...

  2. 《FlaskWeb开发:基于Python的Web应用开发实战》笔记

    开源库的cdn加速 可以在这里直接搜索复制script链接 https://www.bootcdn.cn/ requirements.txt文件的生成与使用 生成requirements文件:$ pi ...

  3. flask web开发:基于python的web应用开发实战_在知乎上学 Python Web 开发篇

    通知: 1. 最近我们将进行2期学习小组,面向完全零基础的Python入门学习小组已经开始,第一次任务的讨论将于明晚(15号)进行,现在上车还来得及 2. 另有一期数据可视化小组将于年前启动,第一次讨 ...

  4. 《Flask Web开发:基于Python的Web应用开发实战》笔记(原创)

    内容提要 在学习"狗书"<Flask Web开发:基于Python的Web应用开发实战>的过程中,一直遇到各种各样的坑.该书的第一部分是"Flask简介&qu ...

  5. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉还是 ...

  6. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)

    目录 前言 第8章 用户认证 第9章 用户角色 第10章 用户资料 第11章 博客文章 第12章 关注者 第13章 用户评论 第14章 应用编程接口   前言 第1章-第7章学习实践记录请参见:< ...

  7. Flask Web开发:基于Python的Web应用开发实战

    <Flask Web开发:基于Python的Web应用开发实战> 虽然简单的网站(Flask+Python+SAE)已经上线,但只是入门.开发大型网站,系统地学习一遍还是有必要的. 201 ...

  8. 基于python的数据分析毕业设计-基于python的Web大数据采集和数据分析

    肖乐 丛天伟 严卫 摘要:该设计使用python语言作为开发语言,主要采用了两个框架:Scrapy和Django,用Scrapy来实现数据的采集技术,让数据采集效率更高,错误率低等:用Django来实 ...

  9. python web开发框架 支持windows_基于Python的Web开发框架研究_曾浩

    INDUSTRY 计算 机 与 信息 技术 2011 年 8 月 第 8 期 ( 总第 153 期 ) 1 前言 Python 是 一 种开 发 效 率较 高的 语言 , 因此 比较 适 合需求 快 ...

最新文章

  1. 【原】IOS文件操作
  2. 2017.2.12【初中部 GDKOI】模拟赛B组 T4:pot
  3. 分子克隆科研利器SnapGene,测序验证好帮手
  4. Mac OS X Glut build instructions
  5. jquery的懒加载记录一下踩得坑
  6. Strategy 策略模式
  7. [Vue warn]: Failed to mount component: template or render function not defined. (found in root insta
  8. Java设计模式--解释器模式
  9. php截取多个分割符号_PHP按符号截取字符串的指定部分的实现方法
  10. CheerpJ转换JAVA使用最简教程
  11. jodconverter实现在线预览
  12. 2011年1月31日nod32id,nod32免费激活码_NOD32用户名密码
  13. AngularJs的UI组件Datepicker Popup
  14. 光端机连接示意图详细连接方式图解
  15. numpy.array和python列表的转换
  16. PINN深度学习求解微分方程系列一:求解框架
  17. record sound
  18. 1218_整数因子分解
  19. UVM中Virtual sequence的作用
  20. “看完网红村视频,我连夜叫了滴滴打人服务”|黑话连篇

热门文章

  1. Angularjs树形结构
  2. http://ajava.org/readbook/java/javaemail/11239.html Mime 邮件详解
  3. 在 Nuxt.js 和 Vue.js 项目中引入第三方字体或艺术字
  4. 宋晓丽 20190919-6 四则运算试题生成,结对
  5. 软件工程导论—详细设计
  6. Python-四分位数计算
  7. linux点滴yan
  8. oracle字符串转换浮点数,c#中将字符串转换成带2位小数的浮点数
  9. 【板栗糖GIS】——如何下载哔哩哔哩的视频CC字幕为不带时间节点的纯文字
  10. p2p半分布式开源项目调研: