欢迎光临散文网 会员登陆 & 注册

软件测试 |web测试—截获和修改POST请求

2023-08-21 15:52 作者:测吧测试开发  | 我要投稿

更多学习资料戳!!!

问题

内置功能,比如JavaScript验证或文本长度限制,可能会禁止中规中矩的网页浏览器发送特定种类的恶意输入。但是,攻击者有许多种方法可用来绕过这些客户端的限制。为了测试这种情况,我们将向你演示如何从浏览器外部发送修改过的请求。

解决方案

启动WebScarab并配置Firefox用它作为代理(正如第3章所描述的那样)。登录你的应用并导航到你希望测试的功能。在你做好提交请求的准备但还没有提交的时候,打开WebScarab。

在WebScarab中,通过Internet选项卡,单击“Intercept Requests”复选框。从此以后,WebScarab将向你提示每个新页面或AJAX请求。它会询问你是否希望在请求发送到服务器之前对它进行编辑。注意,只有在你确认或拒绝请求之后,页面才会载入。

在“Edit Request”窗口中,你可以随意插入、修改或删除请求头。双击任意请求头即可开始修改——你甚至可以修改左侧的请求头名称。在图5-1中,你可以看到对SSN变量的修改。

另外,你可以通过Raw选项卡以纯文本形式编辑原始请求。这方便了对整个请求的复制和粘贴,这样你就可以在以后重复完全相同的测试。将请求粘贴到测试用例中来保存它,你就能够保存数据用于回归测试。

完成之后,你可以通过取消选中任何一个“Edit Request”窗口中的复选框来禁止对请求的截获。如果有许多等待中的请求,就可以使用“Cancel ALL Intercepts”按钮。

讨论

作为Web代理(有关Web代理的更多信息,看第三章),WebScarab在数据离开你的浏览器但还没有到达服务器的时候对其进行截获和修改。通过在中途修改数据,它能够避开页面指定的所有限制或修改。

注意,启用“Intercept Requests”之后,在浏览时,每个新的页面都会启动一个“Edit Request”窗口。不要忘记取消选中“Intercept Requests”!如果你在完成之后忘记将它关闭,那么你必须来回单击几个Edit Request窗口,非常恼人。

注意,图5-1中的SSN变量传送了5个数字。而例5-1的HTML源代码将SSN域限制为4个字符,如图5-2所示。

在原本应该是4位数字的域中发送5位数字,这只不过是WebScarab使之成为可能的修改种类的一个例子。一旦你建立了提供不寻常数据的能力,就应该确保你的应用能够得体地处理这些异常。

WebScarab允许你修改所有请求头,甚至是请求将被发送到的URL.这使得它能够方便地同时修改GET和POST信息,这种功能是其他工具(比如TamperData)所没有的。

谨慎使用WebScarab

在你截获请求时,你是捕获到AJAX驱动的功能以及单独的表单提交。每个AJAX请求可以被单独截获和修改。记住,大量使用AJAX的站点会产生许多请求,有可能会爆炸式地弹出许多被截获请求窗口。

此外,使用WebScarab需要配置整个网页浏览器作为代理,而不是针对单个窗口、选项卡或站点。在有些情况下(Internet Explorer或Mac OS X上的Safari),你实际上是设计整个操作系统使用这个代理。这意味着每次软件更新检查,后台HTTP连接或者使用HTTP的应用会突然将自己的所有请求都通过WebScarab来发送,这可能是数量巨大的,而且它会妨碍你搜集与单个请求有关的数据的能力。

因而,在你使用WebScarab时,请确保尽量减少同时运行的其他使用HTTP的程序的数量(Adobe Reader、其他浏览器窗口、缺陷跟踪系统等等)。


软件测试 |web测试—截获和修改POST请求的评论 (共 条)

分享到微博请遵守国家法律