配置扫描范围
您可以使用扫描范围,以决定哪些URL被攻击或抓取。您可以在应用程序中设置的应用程序级的网址或从扫描配置中设置的扫描配置的URL。这将大大超过如何设置扫描范围来决定你的应用程序是如何进行扫描。
设置以下选项来控制应用程序扫描:
- 扫描网址- 添加要扫描的URL。
- 爬行的限制- 限制扫描爬网的URL。
- 攻击限制- 从被攻击Denylist参数。
- 宏观,流量和硒- 当你遇到一个网站,很难爬,使用宏,交通和硒文件,以帮助与扫描和爬行。
- WDSL &大摇大摆- 测试您的REST API和SOAP服务InsightAppSec。
扫描网址
在扫描URL子部分中,您可以使用此配置添加要扫描的URL,包括应用程序本身中已指定的URL。
整个应用程序指定的URL显示在应用的URL列表。这些被继承到该应用程序下创建的所有扫描的configs。继承涉及扫描时所使用的种子URL。种子URL决定什么网址是基本的扫描。在一个应用程序的任何扫描将使用的应用程序级的网址作为种子URL。
在扫描配置URL列表中,您可以添加更多仅适用于此配置的种子URL。您可以选择协议(HTTP或HTTPS),子域(如WWW或API)和子页面。您可以一次添加1个URL,或选择批量添加URL.选项和粘贴或键入URL列表。
爬行限制
在爬行限制小节中,你可以限制在这个配置上运行的扫描中爬行的内容。
可爬行的最大链接
您可以限制要爬网的URL的数量。扫描引擎在2个阶段工作:爬行和攻击。
在爬行阶段,种子URL(应用级URL和扫描配置URL的组合)被用作一个算法的起点,该算法请求每个URL上的内容,然后询问响应以获取额外的URL。然后再递归地将额外的url用于爬行过程。直到发现的url总数达到需要抓取的最大链接设置时,才会进行抓取。一些资源,例如. js
, 和. css
(在浏览器中填充网页所需的自动加载资源),甚至在达到最大链接限制后也可能被请求。
留在端口
Stay on端口设置强制扫描仅抓取定义为使用与种子url中指定的端口相同的url。
爬网URL.
为了扩大扫描范围,允许抓取robots.txt中的url和在您的站点上找到的任何站点地图。
安全提示:robots.txt不会阻止爬网
当攻击者瞄准你的网站时,他们不会尊重robots.txt文件,所以为什么要训练你的扫描器去忽略攻击表面的一部分呢?一个常见的误解是,使用robots.txt可以阻止扫描仪和搜索引擎抓取网站。即使robots.txt文件告诉搜索引擎爬虫不要请求列出的页面或文件,这只有助于避免站点因请求而超载,但不能防止攻击。
应用程序的URL的约束
为应用URL约束自动生成爬网限制。默认为域和子域级别。要查看自动生成的约束,请展开“应用URL约束”部分。
您还可以指定额外的约束。您可以使用文字,通配符,或正则表达式来制定的具体限制适用。
例如:
通配符:包括http://www.example.com/folder/*预期行为-包括扫描范围内文件夹内的所有文件。
正则表达式:包括http://www.example.com/folder/。*预期行为-包括扫描范围内文件夹内的所有文件。
正则表达式:排除http://www.example.com/.*action=delete预期行为 - 例如,不包括具有操作删除参数的所有页面,例如http://www.example.com/folder/test.html?action=delete
常用表达
在某些情况下,具有正则表达式,提供字符类而不是快捷方式可能更有效。
例子:
[] +
而不是\ S +
- Escape /: /
攻击限制
“攻击限制”小节类似于爬行限制,但也允许您指定“校舍正则表达式”,这可以帮助您攻击校舍参数。此字段的好处是可以将设置应用于应用程序中的每个URL。
正则表达式示例:
ID |行动|日期
-拒绝参数id,动作,和日期从受到攻击的任何URL包括在该扫描。
宏观,交通和硒
有时,你可能会遇到这样的情况,你试图扫描一个难以抓取的网站,或一个应用程序构建的技术,InsightAppSec扫描仪不理解。Macro、traffic和selenium选项可以在这些情况下帮助您。
Chrome浏览器是必需的硒和宏文件
如果在上部前提引擎中使用Selenium或宏文件,则必须将Chrome安装在同一服务器上作为引擎。
宏文件
宏配置允许用户创建执行一个网站上的操作请求序列。一个典型的用例是一个购物车序列,其中用户首先选择一个项目购买,然后将其添加到购物车中,然后继续结账,进入家庭地址,付款方式,最后所有收集到的数据提交给该网站以处理购买该项目。有没有办法使用直接URL或通过简单地爬行网站到达购买网页。通常情况下,访问该网页涉及到一个非常特定的一组动作,比如点击某些按钮的,检查框,并输入信息字段,如果动作序列进行了网站将抛出一个错误。
宏文件可以记录与.rec文件中的网站的所有交互,并且Insightappsec可以使用此文件攻击序列。您可以使用以下步骤扫描宏文件:
- 使用Rapid7 AppSec Toolkit或appspider pro录制新宏并在计算机上保存生成的.rec文件。
- 打开扫描范围>宏,流量和硒屏幕,并单击添加宏文件(s)关联。
- 点击选择文件按钮。这将打开“选择文件”弹出窗口。
- 点击上传文件按钮,并从电脑上传宏。
- 在弹出窗口的“All my Files”选项卡中选择新上传的文件或现有的宏。
- 点击使用1个选定的文件按钮。宏文件现在将显示在上面添加宏文件(s)关联。重复上述步骤添加多个宏文件。
- 使用垂直省略号图标(⋮)来设置宏文件执行的顺序。
- 点击使用序列复选框,如果需要在执行攻击之前运行整个宏。例如,如果您正在测试“Purchase”页面,则不应该在初始的结帐步骤上运行攻击。
- 序列内运行攻击可能很慢。启用限制宏文件切换以确保扫描仅限于此序列。
交通文件
您可能会遇到使用InsightAppSec爬虫程序不支持的技术构建的Web应用程序。您可以使用Web代理工具(如Rapid7 AppSec工具包中的Traffic Recorder)测试此类应用程序的安全性。使用代理工具,您可以在流量文件中记录前端应用程序和后端服务器之间的交互(例如HTTP GET和POST请求和响应)。InsightAppSec可以使用这些交互对应用程序的后端运行攻击。如果您还没有构建web应用程序的前端,并且希望在开发过程的早期就开始测试,那么这种方法也很有用。
使用以下步骤扫描文件流量:
- 在你的应用程序中完成你想要测试的步骤,并将交互记录在你电脑上的交通文件中。流量文件可以是以下格式:
- appsec toolkit流量文件(* .trec)
- 打嗝文件(* . xml)
- 帕罗文件(* .txt)
- WebScarab文件(ConnugchationLog)
- HAR(HTTP归档)文件(* .har)
- Fiddler文件(* .saz)
- 打开扫描范围>宏,流量和硒屏幕,并单击加入交通文件(S)关联。
- 点击选择文件按钮。这将打开“选择文件”弹出窗口。
- 点击上传文件按钮,上传您的计算机的通信文件。
- 从弹出窗口中的“所有文件”选项卡中选择新上传的文件或现有流量文件。
- 点击使用1个选定的文件按钮。流量文件现在将显示在上面加入交通文件(S)关联。重复上述步骤添加多个交通文件。
- 使用垂直省略号图标(⋮)来设置测试流量文件的顺序。
- 启用仅限于流量文件切换以确保扫描仅限于流量文件中的URL。
Selenium文件
硒是用于web应用程序的自动测试,使用户能够像在形式输入数据和点击的按钮操作记录序列的框架。用户可以根据需要重播这些硒录音,以确保根据需要将Web应用程序的行为。
考虑其中用户选择一个项目购买,继续通过购物车,结账和支付选项屏幕最终处理购买该项目的上一节中提到的用例。有没有办法使用直接URL或通过简单地爬行site.Organizations可以创建自己的产品的所有用例Selenium测试套件,以达到购买网页,并确保难以到达的页面,如购买页面进行测试正确。
InsightAppSec可以使用这些硒要扫描的文件是为您的使用情况下,重要的页面。要扫描硒文件:
- 录制Selenium脚本并保存结果
.html.
文件在你的电脑上。
笔记
本节中的Selenium文件应该假设用户已经通过了身份验证。用于身份验证的Selenium文件应该单独记录并上传到验证扫描配置的选项卡。
- 打开扫描范围>宏,流量和硒屏幕,并单击添加硒文件(s)关联。
- 点击选择文件按钮。这将打开“选择文件”弹出窗口。
- 点击上传文件按钮,然后从计算机上上传Selenium文件。
- 选择在弹出的“所有我的文件”选项卡中的新上传文件或现有硒文件。
- 点击使用1个选定的文件按钮。的上方将出现Selenium文件添加硒文件(s)关联。重复上述步骤添加多个宏文件。
- 使用垂直省略号图标(⋮)设置将执行Selenium文件的顺序。
- 点击使用序列复选框,如果在执行攻击之前需要运行所有Selenium文件。例如,如果您正在测试“Purchase”页面,则不应该在初始的结帐步骤上运行攻击。
- 序列内运行攻击可能很慢。启用限制到Selenium文件切换以确保扫描仅限于此序列。
WSDL和扬鞭
您可以通过向InsightAppsec添加WSDL或Swagger文件来测试SOAP和REST web服务。WSDL和Swagger文件定义了一个api的标准接口,它与编程语言无关。InsightAppSec解析这些文档,生成对API的函数调用,并为预期参数创建测试值。然后对API执行这些函数调用,并检查交互是否存在漏洞。
你可以提供一个URL到WSDL或扬鞭文件进行扫描。如果此URL只是你的内部网络上可用,则必须在同一个网络内安装的扫描引擎,并确保该引擎能够访问该文件。
使用WSDL文件扫描SOAP API
您可以使用以下步骤扫描SOAP API:
- 打开扫描范围> WSDL&扬鞭屏幕。
- 在里面内容类型字段,输入WSDL文件的内容类型。这类似于在制作HTTP SOAP请求时设置“Content-Type”标题。
- 如果目标应用程序承载您希望用于测试的WSDL文件,则将正则表达式设置为匹配正则表达式场地。
- 如果您的API使用Web服务增强功能,请查看.NET,检查Web服务增强选择。
- 如果您的API需要身份验证,请在相应字段中输入用户名和密码。
- 点击添加WSDL文件来提供一个用于扫描的WSDL文件。如果该文件在线托管,请单击该文件URL.按钮,并在相邻的文本字段中提供URL。如果该文件存在于您的计算机上,请单击文件按钮并将WSDL文件上传到InsightAppSec。
- 启用限制到WSDL文件切换到确保扫描被限制为在WSDL文件中描述的API功能。
使用扬鞭文件扫描RESTful API中
您可以使用以下步骤扫描的REST API:
- 打开扫描范围> WSDL&扬鞭屏幕。
- 点击添加的文件(s)提供扫描的Swagger文件。如果该文件在线托管,请单击该文件URL.按钮,并在相邻的文本字段中提供URL。如果该文件存在于您的计算机上,请单击文件按钮,并上传JSON文件到InsightAppSec。
- 启用限制对扬鞭文件切换,以确保扫描仅限于Swagger文件中描述的API功能。
- 如果API需要身份验证,则可以在“身份验证”选项卡中设置凭据。如果API需要API键或其他特殊标题,请将其添加到“自定义选项”>“HTTP标题”屏幕的“额外标题”字段中。