编译安装OWASP WebScarab

发表于:2015-4-09 13:28

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:花花浪客    来源:51Testing软件测试网采编

  最近在使用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)
  虽然可能会有其他问题,但是至少我自己使用没有问题了微笑
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号