编译安装OWASP WebScarab

本文详细记录了解决WebScarab编译错误的过程,包括下载源代码、配置环境、解决依赖问题,并修正了一个影响HTTP请求解析的bug。通过本文,读者可以了解如何在遇到类似问题时自行解决。

Sorry, 现在发现文档下面所说的编译方法已经不适用新的WebScarab了,新的编译方法参考另一篇文章: http://blog.youkuaiyun.com/eatmilkboy/article/details/7793244


最近在使用WebScarab的时候发现有个bug,这个bug本身很容易修复,只是为此无法使用直接下载的WebScarab的binary,必须重新编译一下。特把编译过程纪录下来。

 

下载源代码:

直接通过IE下载最新的snapshot:

http://dawes.za.net/gitweb.cgi?p=webscarab.git;a=tree

 

编译需求:

看了下说明文档,编译需要使用ANT。所以又下载了JDK1.6以及ANT1.8,在把JDK以及ANT得环境设置好之后准备开工。

 

开始编译:

把下载的WebScarab得源代码解压缩之后进入其目录,直接执行

ant

结果失败,报错说找不到ProGuard。

ProGuard是个什么东东?把WebScarab的ANT脚本打开之后发现是因为有个新的task需要ProGuard的jar包

<taskdef 
classpath="${proguard.location}/lib/proguard.jar" 
resource="proguard/ant/task.properties"
/>


不管了,google一下之后在这里http://proguard.sourceforge.net/ 把目前最新的4.7下载了下来,解压缩之后发现里面有编译好的jar包。

 

再次编译:

仔细看了下WebScarab的编译脚本,定义proguad的task需要把proguard.jar放到${proguard.location}/lib/proguard.jar这个目录下面,proguard.location这个参数在编译脚本里面没有,需要在ANT命令里面指定。这样我就把把proguard.jar 复制到WebScarab解压目录的lib目录下面,再次执行

ant -Dproguard.location=.

OK,这次一切顺利,编译好的WebScarab在dist目录下面,直接执行

java -jar ./webscarab-selfcontained-[numbers].jar

就可以运行了。

 

修正的问题:

在src\org\owasp\webscarab\plugin\fuzz\Parameter.java, 第125行代码如下:

if (contentType.equals("application/x-www-form-urlencoded"))

这边是判断如果一个HTTP请求的HTTP content-type头是form请求,那么会试图解析HTTP body里面的参数,但是根据RFC2616 (http://www.ietf.org/rfc/rfc2616.txt):

Content-Type   = "Content-Type" ":" media-type

media-type     = type "/" subtype *( ";" parameter )

在后面还可以跟其他参数的,典型的例子是编码(如下图),按照代码里面的完全匹配的方式,这样会导致HTTP Body里面的参数无法被解释出来。

修正采用了一个很简单的办法,使用不完全匹配:

if (contentType.indexOf("application/x-www-form-urlencoded") >= 0)

虽然可能会有其他问题,但是至少我自己使用没有问题了微笑

<think>好的,用户问的是如何在Linux上安装OWASP ZAP。首先,我得回忆一下OWASP ZAP的常见安装方式。通常,ZAP可以通过几种方式安装:使用包管理器、下载二进制包、或者用Docker。用户是Linux环境,所以需要针对不同的发行版给出合适的步骤。 首先,可能需要检查用户是否有Java环境,因为ZAP是基于Java的。不过,新版本的ZAP可能自带JRE,所以可能不需要额外安装Java。不过,为了稳妥,可能还是需要提一下Java的安装步骤,或者确认系统是否已经安装了Java。 然后,考虑不同的安装方法。比如,使用Snap包管理器安装,这在Ubuntu上比较方便。另外,直接下载最新的Linux安装包,解压后运行,这可能适用于所有Linux发行版。还有使用Docker的方式,适合喜欢容器化部署的用户。 接下来,我需要参考提供的引用内容。引用[1]提到配置ZAP的主机IP和端口,这可能和安装后的配置有关,但用户的问题是关于安装的,所以暂时可能不需要直接引用这部分。其他引用是关于Ansible和安全测试的,可能暂时用不上。不过需要确保回答中提到的步骤正确,比如下载后的安装步骤是否涉及配置,但用户主要问的是安装,所以重点在安装过程。 另外,用户可能需要启动ZAP的方法,比如命令行如何启动,是否需要图形界面支持。Linux服务器可能没有图形界面,所以可能需要提一下无头模式或者使用X11转发。 然后,生成相关问题,可能需要考虑用户后续可能遇到的问题,比如如何更新ZAP,如何配置代理,或者如何在无图形界面下使用ZAP进行扫描。 还需要注意LaTeX格式的问题,虽然用户的问题不涉及数学公式,但回答中如果有需要强调的命令行参数,可能需要用行内代码块而不是LaTeX。不过根据系统级指令,行内数学表达式需要用$...$,但技术命令应该用代码块,所以可能需要调整格式,确保代码部分用反引号包裹。 最后,确保回答结构清晰,分步骤说明每种安装方法,并验证每种方法的正确性。比如,Snap安装可能只需要一条命令,而手动下载则需要解压和运行脚本。Docker方式则需要用户已经安装Docker环境。 总结步骤: 1. 使用Snap安装(适合Ubuntu) 2. 下载并解压安装包 3. Docker方式 4. 验证安装是否成功 5. 启动ZAP的方法 6. 注意事项,如Java环境、图形界面等 可能还需要提醒用户根据发行版选择合适的安装方式,例如基于Debian的系统用Snap,其他可能用二进制包或Docker。 现在整理这些步骤,用中文回答,并确保符合格式要求,如代码块用反引号,独立公式不需要,但如果有变量可能需要用LaTeX,不过这里应该不需要。最后生成相关问题,比如如何更新、配置代理、命令行使用等。</think>### 如何在Linux上安装OWASP ZAP? 以下是几种常见的安装方法,适用于不同的Linux发行版: --- #### **方法1:通过Snap安装(推荐适用于Ubuntu/Debian)** 1. 安装Snap(若未预装): ```bash sudo apt update sudo apt install snapd ``` 2. 安装OWASP ZAP: ```bash sudo snap install zaproxy --classic ``` --- #### **方法2:手动下载并安装** 1. 从[OWASP ZAP官网](https://www.zaproxy.org/download/)下载最新Linux版本(如`.tar.gz`文件): ```bash wget https://github.com/zaproxy/zaproxy/releases/download/v2.14.0/ZAP_2.14.0_Linux.tar.gz ``` 2. 解压文件: ```bash tar -xvf ZAP_2.14.0_Linux.tar.gz ``` 3. 进入解压目录并运行: ```bash cd ZAP_2.14.0 ./zap.sh ``` --- #### **方法3:通过Docker安装** 1. 拉取官方镜像: ```bash docker pull owasp/zap2docker-stable ``` 2. 运行容器(以无界面模式启动): ```bash docker run -u zap -p 8080:8080 -i owasp/zap2docker-stable zap.sh -daemon -host 0.0.0.0 -port 8080 ``` 配置完成后,可通过浏览器访问`http://<服务器IP>:8080`[^1]。 --- #### **验证安装** 运行以下命令检查版本: ```bash zap.sh -version ``` 若显示版本号(如`2.14.0`),则安装成功。 --- #### **注意事项** - **图形界面支持**:ZAP默认需要图形环境。若服务器无界面,可使用`-cmd`参数以命令行模式运行。 - **依赖项**:确保系统已安装Java 11+(ZAP 2.12+自带JRE,无需额外配置)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值