w3af初级

0x01 w3af

w3af是一个完整的web应用攻击和漏洞分析环境。该环境为web漏洞的分析和测试提供了一个课信赖的平台。
w3af是一个Web应用程序攻击和检查框架,该项目已超过130个插件,其中包括检查网站爬虫,SQL注入(SQL Injection),跨站(XSS),本地文件包含(LFI),远程文件包含(RFI)等

0x02 Linux下安装与启动

apt-get install w3af   #安装
cd +安装目录             #启动
./w3af_console

补充一个小知识点:
Linux下查看运行文件所在路径:which
eg:which w3af
Linux下查看文件安装路径:whereis
eg:whereis w3af

由于kali Linux自带有w3af,所以我们可以直接启动它,

w3af           #图形界面
w3af_console   #控制台界面


推荐大家使用控制台界面

0x03 w3af基本插件

W3af主要有三种主要类型的插件:
Discovery:抓取插件,主要负责寻找url,其实就是网络爬虫。
Audit:审计插件,主要负责发现抓取插件爬取的url中是否存在安全漏洞。
Attack:攻击插件,主要是去利用审计插件发现的漏洞。
其他插件:
discovery:漏洞挖掘
exploit: 漏洞利用
Infrastructure:确定目标的基本信息,如安装的waf、操作系统等。
Grep:分析其他插件发送的HTTP请求和响应,并确定漏洞。
Output:输出插件,可以将数据保存到文本文件、XML文件或HTML文件。
Mangle:允许以基于正则表达式的方式修改网络请求和响应。
Bruteforce:进行暴力破解登录信息
Evasion:用于逃避简单的入侵检测。

首先我们查看帮助信息,有利于我们了解它的操作使用

0x04 w3af基本原理和使用

1、基本原理

1.1 漏洞挖掘(Discovery)
搜寻新的URL、表单和其他注入点,使用Crawl抓取插件进行漏洞挖掘。Web spider是一个经典的漏洞挖掘插件。这个插件以一个URL为输入,然后得到一个或多个注入点。当用户使用多个这种类型的插件时,这些插件会运行这样的循环:如果插件A在第一次运行时发现了一个新的URL,w3af内核将这个URL传递给插件B。如果插件B发现了一个新的URL,也将发送给A。这个过程将一直持续下去,所有的插件都将会工作。占用应用资源,直到无法运行漏洞挖掘应用。
1.2 漏洞分析(Audit)
分析那些有漏洞挖掘插件找到的注入点,为了发现漏洞,漏洞分析插件会向所有可注入点发送他别设计好的数据。例如使用一个漏洞分析插件来获取SQL注入的漏洞
1.3 漏洞攻击(Attack)
利用分析插件发现的漏洞。他们通常会得到一个远程服务器的shell或者一个利用SQL注入漏洞获取的远程数据库表。

2、基本使用

2.1 插件配置
plugins,遇到问题都可以使用help查看帮助

w3af>>> plugins    #进入插件模块
w3af/plugins>>> list crawl   #列出所有用于发现的插件
w3af/plugins>>> crawl find_backdoors phpinfo web_spider      //启用这三个扫描插件插件
w3af/plugins>>> list audit    #列出所有用于漏洞的插件
w3af/plugins>>> audit blindSqli fileUpload osCommanding sqli xss     #启用blindSqli fileUpload osCommanding sqli xss这五个插件
w3af/plugins>>> back    #返回主模块

查看某一插件内部信息

w3af/plugins>>>audit desc xss  #了解插件作用
w3af/plugins>>>audit config xss
w3af/plugins/audit/config:xss>>>view

2.2 漏洞扫描
设置扫描目标,自己本地搭建环境进行测试

w3af>>> target    #进入配置目标的模块
w3af/config:target>>> set target http://192.168.1.105/sqli-labs/Less-1/ #设置攻击目标
w3af/config:target>>> back
w3af>>> start     #开始扫描


2.3 漏洞利用
使用扫描出的漏洞进行攻击

w3af>>> exploit    #进入漏洞利用模块
w3af/exploit>>> list exploit    #列出所有用于漏洞利用的插件
w3af/exploit>>> exploit sqlmap  #选择sqlmap进行利用


他可以和sqlmap进行联动,发现存在sql注入

w3af/exploit>>> interact 0  #获得交换式模块
w3af/exploit/sqlmap-0>>> dbs #获得数据库名

其实w3af还有好多的功能和用处,功能还不错,这里只是简单的介绍了他的初级使用,大家有兴趣的话可以继续研究下去。