w3af is a Web Application Attack and Audit Framework.即Web应用攻击和审计框架。w3af用python编写,依赖的库主要有2类,分别如下:
Core requirements:
Graphical user interface requirements:
主要分3部分
内核
The core, which coordinates the whole process and provides libraries for using in plugins.
UI(console和GUI)
The user interfaces, which allow the user to configure and start scans
插件
The plugins, which find links and vulnerabilities
识别所有的链接,表单,查询字条串参数;
Identify all links, forms, query string parameters.
对于每个输入(表单),发送构造的畸形字符串,然后分析输出;
Send specially crafted strings to each input and analyze the output
生成报告
Generate a report with the findings
文件:w3af/core/controllers/w3afCore.py 类w3afCore:这是整个框架的核心,它调用所有的插件,处理异常,协调所有的工作,创建线程……
scan_start_hook(self)
功能:创建目录、线程和“消费者”,用来执行一次w3af扫描。
调用:在core初始化,重新启动扫描(清除前一个扫描的所有结果和状态)
start(self)
功能:UI调用该方法来启动整个扫描过程
_safe_message_print(self,msg)
功能:当磁盘空间耗尽,程序不能再向磁盘写入日志信息时,会引发异常,该函数就是来处理这种异常。像backtrack这种LiveCD经常出现这种异常。
worker_pool(self)
功能:返回一个类Pool的实例
cleanup(self)
功能:GUI 调用该方法,当一个扫描被终止,并且用户想启动一个新的扫描时,kb所有的数据被删除。
stop(self)
功能:当用户停止扫描时,UI层调用。
quit(self)
功能:退出s3af
pause(self)
功能:对于一个扫描,暂停或者取消暂停
verify_environment(self)
功能:检查用户配置的所有参数是否正确。
scan_end_hook(self)
功能:对应scan_start_hook()
exploit_phase_prerequisites()
pass
_home_directory(self)
功能:处理和创建/管理主目录相关的工作
_tmp_directory(self)
功能:创建tmp目录,存储大量资料,/tmp/w3af//
读了几个源码文件,感觉具体到某一个文件源码,看明白没什么困难,但是看完之后基本上没有收获,所以下一步准备修改源码再编译,希望能有所收获。