编译安装OWASP WebScarab

Sorry, 现在发现文档下面所说的编译方法已经不适用新的WebScarab了,新的编译方法参考另一篇文章: http://blog.csdn.net/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)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值