Webscarab关键源码分析(1)

web安全测试---WebScarab工具介绍(中间攻击,可以修改请求参数) 1.1Webscarab 【功能】 WebScarab是一个用来分析使用HTTP和HTTPS协议的应用程序框架。其原理很简单,WebScarab可以记录它检测到的会话内容(请求和应答),并允许使用者可以通过多种形式来查看记录。WebScarab的设计目的是让使用者可以掌握某种基于HTTP(S)程序的运作过程;可以用它来调试程序中较难处理的bug,也可以帮助安全专家发现潜在的程序漏洞... 阅读详情


最近写一个android上的东西,要用到http代理的一些东西,包括封装解析各种http request和response以及多连接并发管理各种麻烦的东西。虽然自己也能写,但感觉是在重复的发明轮子,不如拿一些现成的东西来用,而且更快更成熟。所以选择了Webscareb,打算把里面的http协议栈相关的东西裁减出来供自己使用,这就避免不了源码的阅读。

但在网上搜了搜发现没有什么和这方面有关的资料,所以自己打算写几篇博客既能方便后来人,也能记录一下自己的学习旅程。

 

首先源码包我下载的是个比较旧的版本的,地址如下http://sourceforge.net/projects/owasp/files/WebScarab/,下载的是20070504-1631版本。

 

一大堆乱七八糟的包,通过我敏锐的嗅觉,找到了里面的httpclient包,感觉里面就是我需要的东西。

然后发现一个关键的接口:

 

/**
 *
 * @author  rdawes
 */
public interface HTTPClient {
    
    Response fetchResponse(Request request) throws IOException;
    
}

一个http客户端就是一个实现这么一个接口的东西:接收一个请求,返回一个响应。如此定义言简意赅易于理解。

然后我找到实现这个接口的一个类,也在这个包下,URLFetcher.java,大概600行,看的云里雾里的,所以打算先弄懂什么是Response和Resquest

在Model包里找到了这两个类,均继承自Message类。

Message这个类是个干什么的呢?我找到了一段注释:

 Message is a class that is used to represent the bulk of an HTTP message, namely
 * the headers, and (possibly null) body. Messages should not be instantiated
 * directly, but should rather be created by a derived class, namely Request or
 * Response.

大概就是说message代表一个http消息,也就是一个消息头+内容这样一个逻辑体,但在具体应用中应该实例化成resquest或者response

那么自然而然就想到这么几个问题:

1、如何实例化这个message,如何往里填充内容

2、这些消息和内容是怎么存在里面的。

3、这个message和外部能进行什么交互?换句话说我一个外部类使用这个message对象能干什么。

问题1:

message类有两个方法可以往其中填充数据:

 public void read(InputStream is) throws IOException和

public void parse(StringBuffer buffer) throws ParseException

前者使用一个输入流而后者使用一个StringBuffer

问题2:

数据的存储分为消息头的存储和后面内容的存储,前者不能为空而后者可以为空。

消息头存储在一个NamedValue对象数组中,从名字也可以看出这是一个key-value结构,数组中每一个元素代表http头的一行。

内容的存储采用两个方式:

 InputStream  _contentStream  和ByteArrayOutputStream _content

数据的解析机制是这样的:

如果直接从InputStream中读取数据,首先读到的自然是Http头,存放在NamedValue数组中。头部读完后将此输入流赋值给成员变量_contentStream,此时_contentStream就代表了内容流。

如果从StringBuffer中读取数据,首先读Http头,同样存放在NamedValue中,然后实例化_content对象,并将剩余的内容写到_content中。

值得注意的是,如果在_contentStream有效的情况下调用flushContentStream()会将_contentStream里剩余的内容写入_content。

问题3:

这个类怎么用?

首先类定义了一组对Header的操作,比如AddHeader,SetHeader,DeleteHeader可以方便的对http头进行操作。

其次可以定义了方法可以取出内容部分(当然也可以取出Header部分)。

第三重载了tostring方法,可以得到一个完整的http包的字符串。

同时还有flushContent的方法,可以将内容全部冲刷到一个指定流。

当然最重要的是可以传入一个流或者一个StringBuffer,得到这个可以进行操作的对象。

 

待续。。。。。。。。。

WebScarab ***-1631:全面的Web应用安全测试工具 本文还有配套的精品资源,点击获取 简介:WebScarab ***-1631是一个开源的安全测试工具,由OWASP提供,专门用于评估Web应用程序的安全性。该版本具体包含了日期为2007年5月4日以及编译时间戳的特性与技术。它包括三个关键文件:一个安装程序,一个自包含版本,和源代码包,让开发者和安全专家能够下载并使用。WebScarab提供了一系列功能,如代理服务器、密码破... 阅读详情

相关推荐

网络安全工具-WebScarab

亲测可用

Web安全测试-WebScarab工具

1.1 Webscarab1.1.1 工具安装1.1.2 功能原理1.1.3 工具使用1.1.34 使用心得 转载自web安全测试—WebScarab工具介绍(中间攻击,可以修改请求参数) 1.1 Webscarab 【功能】 WebScarab是一个用来分析使用HTTP和HTTPS协议的应用程序框架。其原理很简单,WebScarab可以记录它检测到的会话内容(请求和应答),并允许使用者可以通过多种形式来查看记录。WebScarab.

风间琉璃zero 4089

webScarab 源码

WebScarab的HTTP代理提供了预期的功能(包括HTTPS拦截,不过和PAROS一样有认证报警)。WebScarab也提供了一些花哨的功能,比如SSL客户认证支持,十六进制或URL编码参数的解码,内置的会话ID分析和一键式“完成该会话”以增加效率等。就基本功能而言,WebScarab和PAROS差不多,但WebScarab为更懂技术的用户提供了更多的功能,并提供了对隐藏的底层更多的访问。但是,由于PAROS更简单,我们仍推荐学者在开始时使用它。

【webscarab兼容问题解决】

最近软件测试要求用到webscarab,在正确下载安装以后,虽然可以运行起来,但是会发现webscarab并不能关闭,以及无法设置为完整的版本。在尝试了多种jdk以后,仍然不能正常运行,最后不断尝试下,发现了一种不影响本地jdk环境,又可以让webscrab正常运行的方法。

sky_sfsrew的博客 784

webScarab源码

webScarab工具及源码 一款代理软件或许没有其它的工具能和OWASP的WebScarab如此丰富的功能相媲美了,如果非要列举一些有用的模块的话,那么他们包括HTTP代理,网络爬行、网络蜘蛛,会话ID分析,自动脚本接口,模糊测试工具,对所有流行的WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等。WebScarab基于General Public License(GNU)版本协议。和Paros 一样是用JAVA编写的,因此安装它需要JRE.

WebScarab.rar

WebScarab 工具源码,开源组织开源工程,有兴趣的可以下载,不过看此工程最好下载下来说明文档,否则不容易理解,本人组织了5人团队,两周才把功能梳理清楚

Web安全测试-WebScarab

它可以记录它检测到的会话内容(请求和应答),并允许使用者可以通过多种形式来查看记录。它可以获取客户端提交至服务器的http请求消息,并以图形化界面显示,支持对http请求信息进行编辑修改。webscarab工具采用web代理原理,客户端与web服务器之间的http请求与响应都需要经过webscarab进行中转,webscarab将收到的http请求消息进行分析,并将分析结果图形化显示。可以用它来调试程序中较难处理的bug,也可以帮助安全专家发现潜在的程序漏洞。

wzj的博客 1336

SWIPT技术(无线通信携能技术)的简介与架构——(后续补充无人机SWIPT方向)

SWIPT一、SWIPT(无线通信携能)技术简介1.1、组成:1.2、与传统无线通信的区别:1.3、SWIPT 的集成接收器架构设计1、单独的接收器2、TS架构——时间开关(Time switching,TS)3、PS架构——功率分流(Power splitting,PS)4、天线开关接收器主要两种架构的区别参考文献SWIPT的发展 一、SWIPT(无线通信携能)技术简介 SWIPT(Simultaneous Wireless Information and Power Transfer )是各种WPT技术

Blue 1万+

什么是WebScarab

WebScarab 是一款功能强大的 Web 应用安全测试工具,拥有丰富的功能,例如代理服务器、拦截与修改流量、会话 ID 分析、模糊测试、内容分析、爬虫功能、插件架构等。它适用于安全测试、漏洞评估、渗透测试以及开发调试等场景。尽管 WebScarab 存在一些局限性,例如界面不够友好、学习曲线陡峭、更新频率较低等,但其开源免费的特性、强大的功能以及活跃的社区支持,使其成为 Web 应用安全测试领域的重要工具。随着 Web 应用安全威胁的不断演变,WebScarab 也在不断发展完善。

2301_81916023的博客 1060

KTransformers安装笔记 利用docker安装KTransformers

KTransformers安装笔记 利用docker安装KTransformers

guoqingru0311的博客 1562

ZYNQ Linux环境下PS端I2C驱动OV5640摄像头全流程解析

本文详细解析了在ZYNQ Linux环境下,通过PS端I2C驱动OV5640摄像头的完整流程。内容涵盖从Vivado硬件配置、PetaLinux系统构建、设备树节点添加,到用户空间I2C编程与寄存器配置实战,并提供了关键的调试技巧与常见问题排查方法,帮助开发者快速实现嵌入式视觉应用的传感器配置。

vulkan6gpu的博客 853

推荐开源项目:WebScarab - 网络安全的得力助手

WebScarab是一个由开放网络应用安全项目(OWASP)支持的开源项目,它是一个功能强大的工具,旨在帮助开发者和安全专业人士自动或交互式地测试web应用程序的安全性。该项目完全用Java编写,并以高度模块化的设计为特色,允许用户灵活地替换现有组件或添加新的分析系统。 [项目主页](http://www.owasp.org/index.php/Category:OWASP_WebScarab_

gitblog_00002的博客 637

MT4/MT5数据源接入全攻略:从买服务、自研API到低成本DDE,哪种方案适合你?

本文全面解析MT4/MT5数据源接入的三种主流方案:商业服务、自研API和低成本DDE,详细对比其技术参数、成本结构和适用场景。帮助技术团队根据业务需求选择最优方案,确保外汇交易系统的数据流稳定性和实时性,提升交易体验和业务连续性。

weixin_42568801的博客 173

WebScarab关键源码分析(5)

接上篇分析FetcherQueue,这个大概是最麻烦的方法了,通过这个方法实现线程池进而实现异步操作,并将resquest和httpclient对象结合起来,同时还维护请求队列,并负责调用上层传下来的ConversationHandler方法。 首先从构造函数说起: public FetcherQueue(String name, ConversationHandler handler

锐之锋芒 1119

基于live555实现一个rtsp客户端程序

本文介绍了基于live555流媒体库实现的RTSP客户端程序,能够通过RTSP地址获取H.264/H.265裸码流或TS流数据并存入本地文件。详细阐述了使用CLion搭建工程的代码架构和CMake配置,重点分析了TS流解析模块的实现,包括TS包结构解析、PES包提取和ES裸流获取的完整流程。文章提供了TS/PES/ES三种数据包的协议说明,并给出了从TS流中提取视频帧的具体方法,最后附有工程代码下载链接。该方案实现了RTSP流媒体接收、解析和存储的完整功能链。

kk821521286的博客 790

基于遗传算法改进BP神经网络的电池容量SOC预测

,遗传算法BP神经网络能很好的实现对电池容量soc的训练和预测,BP神经网络是一种成熟的神经,相对于其他神经网络,拥有很多的训练函数,传递函数,可以调节的参数非常多,对各种问题都可以达到一个比较理想的效果,关键看如何调试参数,选择训练传递函数,遗传算法改进BP神经网络的初始权值阈值,达到改进BP神经网络的目的,从而更好的实现对电池容量SOC的预测

abc991835105的博客 768

WebScarab关键源码分析(4)

在上一篇博文里我们分析了URLFetcher的一些行为以及相关方法,顺着这个思路走,接着我们遇到的问题是: 谁使用了URLFetcher?它是如何使用URLFetcher的? 这就又牵扯到了两个关键的类:HTTPClientFactory和FetchQueue。 首先从HTTPClientFactory说起,从名字我们也可以大概看出,这是一个工厂模式,这个工厂可以产生HTTPClient对象

锐之锋芒 1269

【DaVinci Configurator专题】-5-通过Data Mapping自动创建CAN信号关联的Port并添加到APP SWC

目录 1 导入CAN Matrix变更后的Arxml文件 2 自动创建CAN信号关联的APP Port 3 CAN信号与App SWC的接口映射/连接 4 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键词: DaVinci Developer DaVinci Configurator Pro ARXML AUTOSAR System Description Network Explorer 1

「汽车电子助手」的博客 5130

WebScarab关键源码分析(3)

今天读的比较多,就多写点吧。 一个Http代理要实现的功能不外乎就四句话,保存客户端发过来的http请求,将请求发给服务器端,搜集返回结果,并发给客户端,如果用webscarab的数据结构来描述这个过程的话也就:   客户socket的输入流----->> request对象 ------->>>response对象------->>>客户socket输出流 如果把这三个箭头当做3个过程,

锐之锋芒 1211

使用VNA(Vector Network Analyzer)对S参数进行去嵌(一)

传统上,RF和微波组件被设计成具有同轴接口的封装。通过连接一系列这些单独的同轴设备,可以容易地制造复杂的系统。使用使用类似同轴接口的标准测试设备可以很容易地测量这些部件和系统的性能。然而,现代系统需要更高水平的组件集成、更低的功耗和更低的制造成本。射频组件正在迅速从使用昂贵同轴接口的设计转向使用印刷电路板和表面贴装技术(SMT)的设计。传统的同轴接口甚至可以从最终产品中取消。这就给设计者留下了用需要同轴接口的测试设备测量这些射频和微波组件性能的问题。解决方案是使用连接同轴和非同轴传输线的测试夹具。

小孟同学的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Webscarab关键源码分析(2)

接上篇说Request对象和Response对象 Request代表一个请求,首先给出一个http请求头: GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1 Host: net.tutsplus.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;

锐之锋芒 1071

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WebScarab关键源码分析(3)(续)

接上篇。 接下来是两个if,如果接收到的是401或者407返回码(其含义分别为需验证和代理服务器需验证),则重新调整验证信息,并在下一个while里继续请求内容。 再一个是判断如果request使用的是head方法,则setNobody(),因为head方法是不可能有内容部分的,调用setnobody后未读取的输入流_in将不会再尝试读取。 接着判断connect域的内容,如果是不是keep

锐之锋芒 832

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

WebScarab入门指南

WebScarab具有大量的功能,因而可能会让新用户有一种无从下手之感。为求简单起见,拦截和修改浏览器和HTTP/S服务器的请求和响应可以作为初学者很好的入门课,因为这无需学习太多的内容就可以完成。首先,我们假定您能够自由访问因特网,也就是说,您并非位于一个代理之后。为简单起见,我们还假定您使用的浏览器是Internet Explorer。 图7上面是WebScarab启动后的截图,其中有几个主要的区域需要介绍一下。首先要介绍的是工具栏,从这里可以访问各个插件,摘要窗口(主视图)和消息窗口。摘要窗口分成两个

clangke的专栏 4562

Web安全测试-WebScarab工具介绍

 1.1  Webscarab 【功能】 WebScarab是一个用来分析使用HTTP和HTTPS协议的应用程序框架。其原理很简单,WebScarab可以记录它检测到的会话内容(请求和应答),并允许使用者可以通过多种形式来查看记录。WebScarab的设计目的是让使用者可以掌握某种基于HTTP(S)程序的运作过程;可以用它来调试程序中较难处理的bug,也可以帮助安全专家发现潜在的程序漏洞。...

iteye_5347的博客 1150

web应用程序安全性测试_Web应用程序安全性:测试漏洞

相反,随着Web在本质上日益社会化,它变得越来越不安全。 实际上,Web应用程序安全联盟(WASC)在2009年初估计,所有网站中有87%容易受到攻击(请参阅参考资料 ,以获得更多信息的链接)。 尽管有些公司可以聘请外部安全分析师来测试漏洞,但并不是每个人都有资源花费20,000至40,000美元进行外部安全审核。 相反,组织将依靠自己的开发人员来理解这些威胁,并确保其代码中没有任何此类漏洞。...

cuxiong8996的博客 769

安装WebScarab方法【安全测试】

安装WebScarab是需要java环境的,所以在此之前需要安装并配置java,如果有疑惑的可以参考windows10安装配置java 在java环境下,需要下载webscarab-install.jar webscarab-install.jar下载地址 一、安装 安装有两种方法 一、使用cmd命令安装 win+R进入cmd命令提示符,输入java -jar webscarab-installer-20070504-1631.jar 二、双击安装文件安装 双击打开文件后: 一直跟着next提示走即可安装

weixin_45899210的博客 2394
上一篇: 生成n个元素全排列的算法
下一篇: Webscarab关键源码分析(2)
ROger__Wong
博客等级 码龄14年 250粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值