使用Burp Suite 宏自动化处理 Session 会话
2019-02-23 19:04:24 Author: mp.weixin.qq.com(查看原文) 阅读量:14 收藏

此文为翻译文章

原文链接:

https://www.riddhishree.com/posts/automated-session-handling-using-burp-suite-macros/

原文作者:

Riddhi Shree@_riddhishree(Twitter)

恭喜翻译作者惊鸿一瞥最是珍贵

获得转发奖励

价值100元的天猫超市享淘卡一张

欢迎更多优质原创、翻译作者加入

ASRC文章奖励计划

欢迎多多投稿到先知社区

问题陈述

有些问题可以委托给工具解决,有些问题在很大程度上依赖于人类大脑。那么,为什么要把你的大脑浪费在一个不需要动脑筋的问题上呢?

例如,想象质量工程师在输入有效的登录凭证和在用户帐户之间切换这样的琐碎任务上花费的时间和精力。

不得不承认,这是一项枯燥的、耗费精力的、不可避免的任务,并且每一次安全评估都需要处理。是否有可能配置一种工具,使我们能够在眨眼之间切换用户帐户?

解决方案

Burp Suite是多年来已经被广泛使用的工具之一。它提供了许多功能,使安全工程师专注于完成工作,而不是在重复的任务上浪费时间。

Burp提供的功能之一是创建宏。使用Burp Suite,可以使用自定义用户输入按特定顺序自动触发一组请求;还可以处理这样的情况,从先前请求的响应中获得动态值需要传递给当前请求,以便使自动登录过程成功。

遵循的步骤

1.查找会话标识关键字

2.创建“登录宏”

3.测试宏

4.添加“会话处理规则”

5.测试会话处理规则

请访问以下链接,查看2018年12月15日

演讲中使用的演示文稿:
https://slides.com/riddhishreechaurasia/automated-session-handlingusing-burp-macros

OWASP RailsGoat示例

让我们来看一个端到端的示例,其中我们将在BurpSuite中定义一个会话处理规则,以检查当前会话是否有效。如果会话已过期,Burp应使用我们选择的凭据自动将我们登录到RailsGoat应用程序。在当前示例中,我们还将考虑这样一个场景,其中一个请求(这是登录过程的一部分)依赖于从上一个请求获得的值。

检查Cookie Jar
创建新用户帐户
登录目标应用程序
重新检查Cookie Jar
添加会话处理规则
测试会话处理规则

检查Cookie Jar

1.启动Burp Suite应用程序,然后转到“Project Options”(项目选项)>“Session(会话)”。

2.点击“Open Cookie JAR”按钮检查Cookie JAR是否为空。

创建新用户帐户

1.启动 OWASP Broken Web Applications。
2.在OWASP-BWA主页上,单击“OWASP RailsGoat”>“(signup)注册”按钮。

3.填写并提交“注册(signup)”表单以创建新的用户帐户。

电子邮件:[email protected] 

密码:welcome2c0c0n
4.成功创建帐户后,您应该登录到应用程序。

5.注销应用程序。

登录目标应用程序

1.在登录页面上输入有效凭据,然后单击“登录(Login)”按钮。

2.返回Burp>“Proxy”>“HTTP History”并记下作为成功登录功能的一部分而触发的所有请求。

重新检查Cookie Jar

1.转到“ProjectOptions>;“Session>;“Cookie Jar”,并单击“OpenCookie Jar”按钮,查看已收集并存储在Cookie JAR中的Cookie

2.关闭“Cookie Jar Viewer”。

添加会话处理规则

1.在“会话处理规则(Session Handling Rules)”部分下,单击“添加(Add)”按钮以添加新的会话处理规则。

2.在“会话处理规则编辑器(Session Handling Rule Editor)”窗口中,单击“添加(Add)”按钮并从下拉菜单中选择“检查会话有效(Check session is valid)”选项。

3.在“会话处理操作编辑器(Session Handling Rule Editor)”窗口中,选中标记为“每10个请求验证一次会话(Validate session only every 10 requests)”的复选框。

4.要确定会话是否有效,我们需要分析服务器响应并检测是否存在某些关键字。例如,当用户重定向到登录页面时,我们知道会话已过期。


5.在“检查响应以确定会话有效性(Inspect response to determine session validity)”一节中,确保已检查所有位置,包括“HTTP标头”和“响应主体”。

6.向下滚动到标记为“定义依赖于会话有效性的行为(Define behavior dependent on session validity)”的部分。


7.选中标记为“如果会话无效,请执行以下操作(If session is invalid perform the action below)”的复选框。


8.选择“运行宏(Run a macro)”选项,然后单击“添加(Add)”按钮。

9.在“宏记录器(Macro Recorder)”窗口中,选择在登录过程中触发的所有请求(仅包括HTML文件),然后单击“确定”。
应用显示过滤器:

选择请求:

10.在“宏编辑器(Macro Editor)”中,选择一个请求并单击“配置项(Configure item)”按钮。

11.验证设置并单击“确定”。

12.在浏览器中,注销应用程序。


13.返回到Burp中的“宏编辑器(Macro Editor)”窗口,然后单击“测试宏(Test Macro)”按钮。

14.在“宏测试器(Macro Tester)”窗口中验证测试结果,然后单击“确定”返回“宏编辑器(Macro Editor)”窗口。

15.为宏指定一个有意义的名称,然后单击“确定”。

16.在“Session Handling Action Editor”窗口中,您应该能够看到,Burp现在已经配置为当检测到会话无效时调用新创建的登录宏。

17.单击“确定”并返回“会话处理规则编辑器(Session Handling Rule Editor)”窗口。


18.为新规则添加适当的说明。

19.切换到“Scope”子选项卡,然后:

选择“Tools Scope”>“Proxy”。

选择“URLScope”>“UseSuite Scope”选项。

20.在“会话”选项卡中的“会话处理规则(Session Handling Rules)”部分,单击“打开会话跟踪器(Open sessions tracer)”按钮。

测试会话处理规则

1.在浏览器中,清除所有缓存的内容[CTRL + SHIFT + DEL]并返回登录页面。

2.尝试在浏览器中直接访问受保护的资源,例如http://192.168.56.104/railsgoat/dashboard/home。

Burp应该代表您自动执行登录操作,不需要任何手动干预。


3.要查看执行的自动化步骤的详细信息,请切换到“Session Handling Tracer(会话处理跟踪器)”窗口。

结论

不仅Burp宏可用于确保在整个软件测试期间保持有效会话,而且通过使用不同的用户帐户创建单独的会话处理规则,我们还可以在用户之间快速切换。

这真的是棒极了!想想你刚刚省下的时间,这些时间可以用来进行更多的创造性思考。

请猛戳右边二维码

Twitter:AsrcSecurity

公众号ID

阿里安全响应中心


文章来源: http://mp.weixin.qq.com/s?__biz=MzIxMjEwNTc4NA==&mid=2652988579&idx=1&sn=8fd35e051daf65c0781b3c2771c25cd8&chksm=8c9eebf4bbe962e28a3e8b30bf34e7ad36c904f271eb70ef38304698f7cc9fd0870af08cd8bd&mpshare=1&scene=24&srcid=0223fG68DI9PBuXfX2ILMDRf#rd
如有侵权请联系:admin#unsafe.sh