配置扫描身份验证据span title="Copy link to clipboard">
Web应用程序通常只有一个用于注册用户的部分。只能通过登录应用程序来评估Web应用程序的这一部分。登录的过程称为“身份验证”。Insightappsec支持许多方法来验证您的应用程序。可以在“扫描配置”向导的“身份验证”选项卡上配置这些。
Insightappsec支持以下身份验证类型:据/p>
- 场地据/strong>
- 浏览器据/strong>
- 服务器据/strong>
- 注销设置据/strong>
自动登录据span title="Copy link to clipboard">
现代web应用程序的界面比简单的HTML网站更复杂。自动登录允许您自动验证到现代应用程序在扫描而不依赖宏。在自动登录认证扫描期间,InsightAppSec分析和识别登录页面,输入凭据,并自动登录到应用程序。
配置自动登录据span title="Copy link to clipboard">
- 在据strong>所有应用程序据/strong>Page,选择您的应用程序。据/li>
- 在据strong>扫描配置据/strong>选项卡,打开扫描配置。据/li>
- 在据strong>认证>站点认证据/strong>页面,选择据strong>自动登录据/strong>.据/li>
- 在相应字段中输入用户名和密码。据/li>
- (可选)据a href="#test-your-login-credentials">测试登录凭据据/a>.据/li>
- 保存扫描配置。据ul>
- 点击据strong>保存据/strong>保存并关闭。据/li>
- 点击据strong>保存和扫描据/strong>保存并运行扫描。据/li>
测试您的登录凭证据span title="Copy link to clipboard">
在添加或更新扫描配置时测试登录凭据,以捕获不正确的凭据,并在扫描期间遇到问题之前解决这些凭据。据/p>
验证凭据所需的AppSec Chrome插件据span title="Copy link to clipboard">
你需要据a href="//www.gcpym.com/insightappsec/appsec-chrome-extension">AppSec Chrome扩展据/a>以核实你的证件。据/p>
- 在扫描配置中,在据strong>认证据/strong>选项卡,去据strong>自动登录据/strong>.据/li>
- 在据strong>验证证书据/strong>节中,输入登录URL、用户名和密码。据/li>
- 点击据strong>验证证书据/strong>.出现一个窗口,显示实时登录尝试。
- 在成功验证凭据之后,保存扫描配置。据ul>
- 点击据strong>保存据/strong>保存并关闭。据/li>
- 点击据strong>保存和扫描据/strong>保存并运行扫描。据br>保存扫描配置时,凭据已加密。要验证保存的扫描配置上的凭据,请重新输入用户名和密码。
宏观的身份验证据/summary>
InsightappSec有时可能无法到达应用程序的登录页面,或者才能在您的网站上执行某种特定的操作序列后,登录表单可能会获得。例如,登录表单可能出现在弹出窗口中,当从“管理”窗口按下“登录”按钮时,通过JavaScript动态生成。您可以通过录制宏来启用InsightAppsec来执行此步骤序列。宏是一系列操作,例如单击按钮,或在记录在一个网页中的文本条目据code class="prism-code language-text">.rec据/span>文件。在扫描过程中,Insightappsec可以重播此文件中的操作以登录Web应用程序。
攻击重播所需的AppSec Chrome插件据span title="Copy link to clipboard">
你需要据a href="//www.gcpym.com/insightappsec/appsec-chrome-extension">AppSec Chrome扩展据/a>为了记录宏验证到您的应用程序。据/p>
配置宏身份验证据span title="Copy link to clipboard">
- 打开据strong>认证>站点认证据/strong>页面和选择据strong>宏观的身份验证据/strong>.据/li>
- 点击据strong>记录新宏据/strong>按钮并输入应用程序的登录URL。一旦完成,请点击据strong>开始记录据/strong>按钮。据a style="cursor:pointer" title="">
1据/div>
2据/div>
格式:“xml”据/span>
3.据/div>
最小持续时间:3000,据/span>
4.据/div>
元素路径:“完整路径”据/span>
5.据/div>
event_type:“JavaScript”据/span>
交通据/summary>
您可能会遇到使用InsightAppSec爬虫不支持的技术构建的web应用程序。您可以使用web代理工具(如中的流量记录器)对此类应用程序进行身份验证据a href="https://blog.rapid7.com/2018/06/14/new-insightappsec-releases-compliance-reports-and-the-appsec-toolkit/">Rapid7 AppSec工具包据/a>.使用代理工具,您可以在流量文件中记录前端应用程序和后端服务器之间的交互(例如HTTP GET和POST请求)。InsightAppSec可以重播这些交互以在应用程序中进行身份验证。
使用流量文件进行身份验证据span title="Copy link to clipboard">
- 完成登录应用程序的步骤,并在计算机上的流量文件中记录交互。流量文件可以采用以下格式:据ul>
- appsec toolkit流量文件(* .trec)据/li>
- Burp文件(* .xml)据/li>
- Paros文件(* .txt)据/li>
- WebScarab文件(conversationlog)据/li>
- 文件(*.har)据/li>
- Fiddler文件(* .saz)据/li>
- 打开据strong>认证>站点认证据/strong>页面和选择据strong>交通据/strong>.据/li>
- 点击据strong>选择文件据/strong>按钮。这将打开“选择文件”弹出窗口。
- 点击据strong>上载文件据/strong>按钮和上传交通文件从你的电脑。据/li>
- 从弹出窗口中的“所有文件”选项卡中选择新上传的文件或现有流量文件。据/li>
- 点击据strong>使用1个选定文件据/strong>按钮。据/li>
多因素据span title="Copy link to clipboard">
许多现代web应用程序使用安全措施,如双因素身份验证和CAPTCHA,这需要手动干预登录应用程序。例如,您的应用程序可能需要通过短信发送一次性密码。多因素身份验证将暂停活动扫描,并允许您以交互方式登录到目标应用程序。验证完成后,可以恢复扫描。扫描引擎将继续抓取并攻击您的应用程序。
为了启用多因素身份验证,您将需要:据/p>
- Chrome浏览器据/li>
- 最新版本的AppSec Chrome扩展据/li>
- 如果您使用的本地扫描引擎,则发动机版本号7.2.049或更高版本据/li>
启用扫描的多因素身份验证据span title="Copy link to clipboard">
要为扫描启用多因素身份验证,请转到据strong>身份验证>身份验证类型据/strong>.点击据strong>身份验证类型据/strong>下拉选择据strong>多因素据/strong>.据/p>
开始扫描后:据/p>
- 监控扫描表。当您的扫描已准备好进行身份验证时,“状态”列将显示“等待身份验证”的消息。
- 单击扫描名称,打开扫描窗口。您将在屏幕的右上方看到“Authenticate Scan”按钮。
- 点击据strong>验证扫描据/strong>按钮如果您尚未安装AppSec Chrome扩展,您将看到一条消息,提示您安装它。如果您已经安装了扩展,您将看到“Multi-factor Authentication”(多因素身份验证)屏幕。据/li>
- 输入应用程序的URL,单击据strong>开始据/strong>.将会出现一个带有文件名称的弹出消息,其中多因素认证网络流量将被记录在Insight Platform上。dota2必威联赛点击据strong>好吧据/strong>接着说。将弹出Chrome浏览器窗口并为您的URL打开网页。
- 登录应用程序。登录成功后,关闭Chrome窗口,返回“Multi-factor Authentication”界面。
笔记据span title="Copy link to clipboard">
在此步骤中,您应该只执行登录到应用程序所需的步骤。InsightAppSec扫描引擎将重播这些步骤并匹配来自据strong>高级>登录Regex据/strong>字段到在浏览器中打开的网页。在确认身份验证成功后,它将继续扫描。
- 点击据strong>停止据/strong>。多因素身份验证屏幕将关闭,您将返回扫描窗口。据/li>
- 监视“事件日志”以确保身份验证成功。Chrome扩展记录了身份验证会话的Web流量,并将其转换为HTTP归档(HAR)文件。扫描引擎重放内存中的此流量以登录您的应用程序。如果登录是成功的,您将看到消息“会话”身份验证,使用多因素文件:“登录”在事件日志中。您还可以看到扫描页面上爬网链接下的状态“登录”状态。
如果登录不成功,应确保据a href="//www.gcpym.com/insightappsec/authentication">先进的据/a>“屏幕与验证后显示的网页中的文本相匹配。如果登录状态指示器隐藏在菜单项下,请展开它,以便InsightAppSec可以检查它并检查登录状态。据/p>
例如,如果要使用“Logout”链接的存在作为用户已登录的指示灯,则将注销链接作为身份验证步骤的一部分隐藏的下拉列表展开。据/p>
硒据/summary>
Selenium是一种用于Web应用程序的自动化测试的框架。用户可以记录使用Selenium以表单和单击按钮输入数据的操作,并按需重播它们以确保Web应用程序的行为。
InsightAppSec支持使用Selenium文件进行身份验证,因此您可以在Selenium中记录登录到应用程序所需的操作据code class="prism-code language-text">. html据/span>文件扫描期间,InsightAppSec可以重播此文件中的操作以登录到web应用程序。以下是的Selenium身份验证文件据a href="http://webscantest.com">http://webscantest.com据/a>.据/p>
XML.据div class="code-copy" title="Copy to clipboard">
1据/div>
<?xml version=“1.0”encoding=“UTF-8”>据/span>
2据/div>
据!!据/span>DOCTYPE据/span>html据/span>公开的据/span>“ - // w3c // dtd xhtml 1.0 strict // en”据/span>“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”据/span>>
3.据/div>
据html据/span>xmlns据/span>=“据/span>http://www.w3.org/1999/xhtml.据/span>“据/span>xml:据/span>朗据/span>=“据/span>EN.据/span>“据/span>朗据/span>=“据/span>EN.据/span>“据/span>>
4.据/div>
据头据/span>轮廓据/span>=“据/span>http://selenium-ide.openqa.org/profiles/test-case据/span>“据/span>>
5.据/div>
据元据/span>HTTP-Equiv.据/span>=“据/span>内容类型据/span>“据/span>内容据/span>=“据/span>text/html;字符集=UTF-8据/span>“据/span>/>据/span>
6.据/div>
据关联据/span>rel.据/span>=“据/span>selenium.base据/span>“据/span>href据/span>=“据/span>http://webscantest.com/据/span>“据/span>/>据/span>
7.据/div>
据标题据/span>>硒据/span>据/span>标题据/span>>
8.据/div>
据/span>头据/span>>
9.据/div>
据身体据/span>>
10据/div>
据表格据/span>单元格边距据/span>=“据/span>1据/span>“据/span>单元格间距据/span>=“据/span>1据/span>“据/span>边境据/span>=“据/span>1据/span>“据/span>>
11据/div>
据thead据/span>>
12据/div>
据tr据/span>>据道明据/span>行宽据/span>=“据/span>1据/span>“据/span>Colspan.据/span>=“据/span>3.据/span>“据/span>>硒据/span>据/span>道明据/span>>据/span>tr据/span>>
13据/div>
据/span>thead据/span>>据tbody据/span>>
14据/div>
据tr据/span>>
15据/div>
据道明据/span>>开放据/span>据/span>道明据/span>>
16据/div>
据道明据/span>>/据/span>据/span>道明据/span>>
17据/div>
据道明据/span>>据/span>道明据/span>>
18据/div>
据/span>tr据/span>>
19据/div>
据tr据/span>>
20.据/div>
据道明据/span>>clickandwait.据/span>据/span>道明据/span>>
21据/div>
据道明据/span>>关联据/span>=登录据/span>据/span>道明据/span>>
22据/div>
据道明据/span>>据/span>道明据/span>>
23据/div>
据/span>tr据/span>>
24据/div>
据tr据/span>>
25据/div>
据道明据/span>>类型据/span>据/span>道明据/span>>
26据/div>
据道明据/span>>名字据/span>=登录据/span>据/span>道明据/span>>
27据/div>
据道明据/span>>管理据/span>据/span>道明据/span>>
28据/div>
据/span>tr据/span>>
29据/div>
据tr据/span>>
30.据/div>
据道明据/span>>类型据/span>据/span>道明据/span>>
31据/div>
据道明据/span>>名字据/span>=passwd据/span>据/span>道明据/span>>
32据/div>
据道明据/span>>管理据/span>据/span>道明据/span>>
33据/div>
据/span>tr据/span>>
34据/div>
据tr据/span>>
35据/div>
据道明据/span>>clickandwait.据/span>据/span>道明据/span>>
36据/div>
据道明据/span>>名字据/span>=submit_login据/span>据/span>道明据/span>>
37据/div>
据道明据/span>>据/span>道明据/span>>
38据/div>
据/span>tr据/span>>
39据/div>
据/span>tbody据/span>>据/span>表格据/span>>
40据/div>
据/span>身体据/span>>
41据/div>
据/span>html据/span>>
使用selenium文件进行身份验证据span title="Copy link to clipboard">
- 控件的Selenium文件中,完成登录到应用程序的步骤并记录交互据code class="prism-code language-text">. html据/span>格式。据/li>
- 在据strong>认证>站点认证据/strong>页面,选择据strong>硒据/strong>.据/li>
- 点击据strong>选择文件据/strong>按钮。这将打开“选择文件”弹出窗口。
- 点击据strong>上载文件据/strong>按钮并从计算机上传Selenium文件。据/li>
- 从弹出窗口中的“所有文件”选项卡中选择新上传的文件或现有的Selenium文件。据/li>
- 点击据strong>使用1个选定文件据/strong>按钮。据/li>
会话劫持据span title="Copy link to clipboard">
如果您的Web应用程序使用会话cookie来维护登录状态,可以捕获此cookie并使用会话劫持方法进行身份验证。将会话cookie复制并粘贴到可用框中。
配置浏览器身份验证据span title="Copy link to clipboard">
您可以为每种身份验证类型启用身份验证。在扫描配置中的“身份验证”>“浏览器身份验证”页面上,使用切换启用浏览器身份验证,并配置身份验证方法。据/p>
HTTP身份验证据/summary>
HTTP协议支持使用用户名和密码进行身份验证。您可以使用此参考文章了解有关HTTP身份验证的更多信息:据a href="https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/understanding-http-authentication">https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/unterstand-http-authentication.据/a>
InsightAppSec支持基本协议、NTLM协议和Kerberos协议进行HTTP认证。据/p>
配置身份验证过程据span title="Copy link to clipboard">
- 打开据strong>认证> HTTP认证据/strong>屏幕。据/li>
- 点击据strong>启用http验证据/strong>切换以启用HTTP身份验证。据/li>
- 在相应字段中输入用户名和密码。据/li>
HMAC.据/summary>
HMAC是使用加密散列函数和秘密密钥来进行身份验证的MAC(消息身份验证码)。要了解更多关于HMAC的信息,请参阅据a href="https://en.wikipedia.org/wiki/HMAC">https://en.wikipedia.org/wiki/HMAC据/a>.据/p>
配置HMAC身份验证据span title="Copy link to clipboard">
- 去据strong>验证> HMAC据/strong>页。据/li>
- 使用切换按钮可以据strong>启用HMAC据/strong>.据/li>
- 输入如下信息:据ul>
- 用户名-哈希算法的用户名。据/li>
- 秘钥-用于计算HMAC的唯一代码。发送方和接收方都知道它。
- 哈希算法-选择哈希算法类型。据ul>
- Md5据/li>
- SHA1据/li>
- Sha256据/li>
- 头文件生成DLL文件名-用户创建的DLL文件(据a href="https://support.microsoft.com/en-us/help/815065/what-is-a-dll">https://support.microsoft.com/en-us/help/815065/what-is-a-dll据/a>),包含加密散列函数。仅在使用内部内部引擎时才需要这一点。如果您没有提供文件,系统将使用引擎提供的DLL。
SSL证书据/summary>
您可能需要在客户端验证您的应用程序,以便您可以扫描SSL后面的页面。此身份验证方法可与云和内部部署扫描引擎一起使用。
PFX证书格式据span title="Copy link to clipboard">
SSL证书必须为。pfx文件。据/p>
配置SSL身份验证据span title="Copy link to clipboard">
- 去据strong>> SSL身份验证据/strong>.据/li>
- 在据strong>类型据/strong>下拉,选择据strong>证书。据/strong>
- 选择您的SSL.pfx文件。据/li>
- 3 .可选:如果需要输入密码,请在提供的框中输入。据/li>
配置服务器身份验证据span title="Copy link to clipboard">
在“扫描配置”中,在“身份验证”>“服务器身份验证”页面上,使用Toggle启用服务器身份验证,并配置身份验证方法。据/p>
非统组织据/summary>
OAuth(据a href="https://oauth.net/">https://oauth.net/据/a>)是一种授权方法,用于授予对客户端的细粒度访问权限。Insightappsec支持OAuth 2.0,这是授权的行业标准协议。OAuth 2.0专注于客户端开发人员简单性,同时为Web应用程序,桌面应用程序,移动电话和客厅设备提供特定的授权流程。如果您的应用程序授予InsightappSec访问某些功能,则可以输入所需的详细信息据strong>身份验证> OAuth.据/strong>屏幕。启动扫描时,Insightappsec可以向您的应用程序提供这些详细信息并接收访问令牌。
设置OAuth身份验证据span title="Copy link to clipboard">
如果您想扫描使用OAuth的应用程序,您需要知道应用程序使用的授权类型。您通常可以从应用程序开发人员那里获得这些信息。如果您检查来自连接的流量,通常还可以在URL中看到授予类型。
隐含据/summary>
隐式授权类型是公共客户端可以使用的简化流,在没有额外授权代码交换步骤的情况下立即返回访问令牌。据/p>
通常不建议使用隐式流(有些服务器完全禁止此流)。自从最初编写规范以来,行业最佳实践已经改变,建议公共客户端应该使用带有PKCE扩展的授权代码流。
强制性的属性据span title="Copy link to clipboard">
- 资源服务器URL.据/li>
- 客户ID据/li>
注意:尚不支持PKCE据/p>
客户端的验证授权据/summary>
资源所有者密码凭据授予类型适用于资源所有者与客户端的信任关系,例如设备操作系统或高度特权的应用程序。授权服务器在启用此授权类型时应特别小心,只有当其他流量不可行时允许它。看据a href="https://tools.ietf.org/html/rfc6749">https://tools.ietf.org/html/rfc6749#4.3据/a>了解更多信息。据/p>
强制性的属性据span title="Copy link to clipboard">
- 资源服务器URL.据/li>
- 用户名据/li>
- 密码据/li>
客户端凭据据/summary>
当应用程序请求访问令牌访问自己的资源时,不代表用户访问客户端凭据授予。客户需要为此请求进行身份验证。通常,该服务将允许其他请求参数客户端ID和客户端密钥,或接受HTTP基本AUTH标头中的客户端ID和客户端密钥。
强制性的属性据span title="Copy link to clipboard">
资源服务器URL.据/p>
其他OAuth属性据span title="Copy link to clipboard">
除了身份验证屏幕的OAuth部分中的属性外,还有一些高级选项可以帮助您配置应用程序的OAuth流。据/p>
- jsonpostbodies.据/strong>支持JSON格式的OAuth授权服务器请求和响应据/li>
- OAuthCustomField据/strong>—应发送到授权服务器的任何附加参数据/li>
笔记据span title="Copy link to clipboard">
在大多数情况下,除了隐式授权类型之外,可以使用宏绕过OAuth身份验证。如果您在使用InsightAppSec配置OAuth时遇到问题,应该尝试据a href="//www.gcpym.com/insightappsec/authentication">宏观的身份验证据/a>.据/p>
阿达尔据/summary>
您可以使用Azure Active Directory身份验证库(ADAL)对您的InsightappSec扫描进行身份验证。据/p>
配置ADAL.据span title="Copy link to clipboard">
要配置ADAL身份验证,必须转到据strong>身份验证> ADAL.据/strong>屏幕在“扫描配置向导”中,并设置以下选项:据/p>
- 资源ID据/strong>-这取决于Azure Active Directory (AD)的使用情况。如果你正在使用Azure Native AD,这应该是两个默认值之一,graph.windows.net或graph.microsoft.com。如果您没有使用原生Azure AD,您的AD管理员可能会帮助您为实例获取正确的ID。
- 租户据/strong>-Azure广告租户的域名,例如example.onmicrosoft.com。这可以在Azure Active Directory概览屏幕上找到。据/li>
- 客户ID据/strong>-您已注册的应用程序下的应用程序(客户端)ID。据/li>
- 权威网址据/strong>- 默认为据a href="https://login.microsoftonline.com/">https://login.microsoftonline.com/据/a>如果空着,这个就会被忽略。据/li>
- 用户名据/strong>- 如果您使用的是客户端ID,用户名和密码身份验证流程,这将是您帐户的用户名。据/li>
- 密码据/strong>- 密码不是用户帐户的密码,而是它是“证书和秘密”部分下创建的密钥。您可以将ADAL与OAuth一起使用,作为身份验证协议(参考:据a href="https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth2-implicit-grant-flow">https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth2-implict-grant-flow.据/a>)。据/li>
配置登录和注销设置据span title="Copy link to clipboard">
在尝试经过身份验证的应用程序时,InsightappSec需要一种方法可以知道身份验证成功。它试图通过检查网页的标题和正文来推导应用程序的登录状态。身份验证>高级选项卡中的字段可用于培训InsightAppsec以识别应用程序的登录状态。
假定登录良好据/summary>有时你可能无法找到匹配应用程序登录状态的正则表达式。可能有多个登录链接通向产品的不同区域,InsightAppSec可能试图在所有地方使用相同的凭据,导致账户锁定。您可以启用“**假设良好登录**”开关,提示InsightAppSec在首次登录后不检查登录状态。
登录链接正则表达式据/summary>与指向登录页的链接上的文本匹配的正则表达式。InsightAppSec将使用此正则表达式查找登录链接并应用用户提供的凭据。如果用户已登录,此正则表达式将帮助InsightAppSec避免再次意外爬网登录。据/details>
登录Regex据/summary>如果页面上的文本与此正则表达式匹配,Insightappsec会假定您仍然登录。此正则表达式通常与退出链接匹配,因为签名选项仅在用户仍登录时可用。据/details>
登录页眉正则表达式据/summary>如果用户登录时应用程序始终填充特定的HTTP头,则可以在此字段中使用匹配的正则表达式。如果标头与正则表达式匹配,InsightAppSec将假定用户已登录。据/details>
您可以使用Regex Builder据a href="https://blog.rapid7.com/2018/06/14/new-insightappsec-releases-compliance-reports-and-the-appsec-toolkit/">Rapid7 AppSec工具包据/a>在使用InsightappSec中使用它们之前测试正则表达式。据/p>
攻击重播所需的AppSec Chrome插件据span title="Copy link to clipboard">
你需要据a href="//www.gcpym.com/insightappsec/appsec-chrome-extension">AppSec Chrome扩展据/a>为了记录宏验证到您的应用程序。据/p>
1据/div>
2据/div>
格式:“xml”据/span>
3.据/div>
最小持续时间:3000,据/span>
4.据/div>
元素路径:“完整路径”据/span>
5.据/div>
event_type:“JavaScript”据/span>
交通据/summary>
您可能会遇到使用InsightAppSec爬虫不支持的技术构建的web应用程序。您可以使用web代理工具(如中的流量记录器)对此类应用程序进行身份验证据a href="https://blog.rapid7.com/2018/06/14/new-insightappsec-releases-compliance-reports-and-the-appsec-toolkit/">Rapid7 AppSec工具包据/a>.使用代理工具,您可以在流量文件中记录前端应用程序和后端服务器之间的交互(例如HTTP GET和POST请求)。InsightAppSec可以重播这些交互以在应用程序中进行身份验证。
使用流量文件进行身份验证据span title="Copy link to clipboard">
- 完成登录应用程序的步骤,并在计算机上的流量文件中记录交互。流量文件可以采用以下格式:据ul>
- appsec toolkit流量文件(* .trec)据/li>
- Burp文件(* .xml)据/li>
- Paros文件(* .txt)据/li>
- WebScarab文件(conversationlog)据/li>
- 文件(*.har)据/li>
- Fiddler文件(* .saz)据/li>
- 打开据strong>认证>站点认证据/strong>页面和选择据strong>交通据/strong>.据/li>
- 点击据strong>选择文件据/strong>按钮。这将打开“选择文件”弹出窗口。
- 点击据strong>上载文件据/strong>按钮和上传交通文件从你的电脑。据/li>
- 从弹出窗口中的“所有文件”选项卡中选择新上传的文件或现有流量文件。据/li>
- 点击据strong>使用1个选定文件据/strong>按钮。据/li>
多因素据span title="Copy link to clipboard">
许多现代web应用程序使用安全措施,如双因素身份验证和CAPTCHA,这需要手动干预登录应用程序。例如,您的应用程序可能需要通过短信发送一次性密码。多因素身份验证将暂停活动扫描,并允许您以交互方式登录到目标应用程序。验证完成后,可以恢复扫描。扫描引擎将继续抓取并攻击您的应用程序。
为了启用多因素身份验证,您将需要:据/p>
- Chrome浏览器据/li>
- 最新版本的AppSec Chrome扩展据/li>
- 如果您使用的本地扫描引擎,则发动机版本号7.2.049或更高版本据/li>
启用扫描的多因素身份验证据span title="Copy link to clipboard">
要为扫描启用多因素身份验证,请转到据strong>身份验证>身份验证类型据/strong>.点击据strong>身份验证类型据/strong>下拉选择据strong>多因素据/strong>.据/p>
开始扫描后:据/p>
- 监控扫描表。当您的扫描已准备好进行身份验证时,“状态”列将显示“等待身份验证”的消息。
- 单击扫描名称,打开扫描窗口。您将在屏幕的右上方看到“Authenticate Scan”按钮。
- 点击据strong>验证扫描据/strong>按钮如果您尚未安装AppSec Chrome扩展,您将看到一条消息,提示您安装它。如果您已经安装了扩展,您将看到“Multi-factor Authentication”(多因素身份验证)屏幕。据/li>
- 输入应用程序的URL,单击据strong>开始据/strong>.将会出现一个带有文件名称的弹出消息,其中多因素认证网络流量将被记录在Insight Platform上。dota2必威联赛点击据strong>好吧据/strong>接着说。将弹出Chrome浏览器窗口并为您的URL打开网页。
- 登录应用程序。登录成功后,关闭Chrome窗口,返回“Multi-factor Authentication”界面。
笔记据span title="Copy link to clipboard">
在此步骤中,您应该只执行登录到应用程序所需的步骤。InsightAppSec扫描引擎将重播这些步骤并匹配来自据strong>高级>登录Regex据/strong>字段到在浏览器中打开的网页。在确认身份验证成功后,它将继续扫描。
- 点击据strong>停止据/strong>。多因素身份验证屏幕将关闭,您将返回扫描窗口。据/li>
- 监视“事件日志”以确保身份验证成功。Chrome扩展记录了身份验证会话的Web流量,并将其转换为HTTP归档(HAR)文件。扫描引擎重放内存中的此流量以登录您的应用程序。如果登录是成功的,您将看到消息“会话”身份验证,使用多因素文件:“登录”在事件日志中。您还可以看到扫描页面上爬网链接下的状态“登录”状态。
如果登录不成功,应确保据a href="//www.gcpym.com/insightappsec/authentication">先进的据/a>“屏幕与验证后显示的网页中的文本相匹配。如果登录状态指示器隐藏在菜单项下,请展开它,以便InsightAppSec可以检查它并检查登录状态。据/p>
例如,如果要使用“Logout”链接的存在作为用户已登录的指示灯,则将注销链接作为身份验证步骤的一部分隐藏的下拉列表展开。据/p>
硒据/summary>
Selenium是一种用于Web应用程序的自动化测试的框架。用户可以记录使用Selenium以表单和单击按钮输入数据的操作,并按需重播它们以确保Web应用程序的行为。
InsightAppSec支持使用Selenium文件进行身份验证,因此您可以在Selenium中记录登录到应用程序所需的操作据code class="prism-code language-text">. html据/span>文件扫描期间,InsightAppSec可以重播此文件中的操作以登录到web应用程序。以下是的Selenium身份验证文件据a href="http://webscantest.com">http://webscantest.com据/a>.据/p>
XML.据div class="code-copy" title="Copy to clipboard">
1据/div>
<?xml version=“1.0”encoding=“UTF-8”>据/span>
2据/div>
据!!据/span>DOCTYPE据/span>html据/span>公开的据/span>“ - // w3c // dtd xhtml 1.0 strict // en”据/span>“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”据/span>>
3.据/div>
据html据/span>xmlns据/span>=“据/span>http://www.w3.org/1999/xhtml.据/span>“据/span>xml:据/span>朗据/span>=“据/span>EN.据/span>“据/span>朗据/span>=“据/span>EN.据/span>“据/span>>
4.据/div>
据头据/span>轮廓据/span>=“据/span>http://selenium-ide.openqa.org/profiles/test-case据/span>“据/span>>
5.据/div>
据元据/span>HTTP-Equiv.据/span>=“据/span>内容类型据/span>“据/span>内容据/span>=“据/span>text/html;字符集=UTF-8据/span>“据/span>/>据/span>
6.据/div>
据关联据/span>rel.据/span>=“据/span>selenium.base据/span>“据/span>href据/span>=“据/span>http://webscantest.com/据/span>“据/span>/>据/span>
7.据/div>
据标题据/span>>硒据/span>据/span>标题据/span>>
8.据/div>
据/span>头据/span>>
9.据/div>
据身体据/span>>
10据/div>
据表格据/span>单元格边距据/span>=“据/span>1据/span>“据/span>单元格间距据/span>=“据/span>1据/span>“据/span>边境据/span>=“据/span>1据/span>“据/span>>
11据/div>
据thead据/span>>
12据/div>
据tr据/span>>据道明据/span>行宽据/span>=“据/span>1据/span>“据/span>Colspan.据/span>=“据/span>3.据/span>“据/span>>硒据/span>据/span>道明据/span>>据/span>tr据/span>>
13据/div>
据/span>thead据/span>>据tbody据/span>>
14据/div>
据tr据/span>>
15据/div>
据道明据/span>>开放据/span>据/span>道明据/span>>
16据/div>
据道明据/span>>/据/span>据/span>道明据/span>>
17据/div>
据道明据/span>>据/span>道明据/span>>
18据/div>
据/span>tr据/span>>
19据/div>
据tr据/span>>
20.据/div>
据道明据/span>>clickandwait.据/span>据/span>道明据/span>>
21据/div>
据道明据/span>>关联据/span>=登录据/span>据/span>道明据/span>>
22据/div>
据道明据/span>>据/span>道明据/span>>
23据/div>
据/span>tr据/span>>
24据/div>
据tr据/span>>
25据/div>
据道明据/span>>类型据/span>据/span>道明据/span>>
26据/div>
据道明据/span>>名字据/span>=登录据/span>据/span>道明据/span>>
27据/div>
据道明据/span>>管理据/span>据/span>道明据/span>>
28据/div>
据/span>tr据/span>>
29据/div>
据tr据/span>>
30.据/div>
据道明据/span>>类型据/span>据/span>道明据/span>>
31据/div>
据道明据/span>>名字据/span>=passwd据/span>据/span>道明据/span>>
32据/div>
据道明据/span>>管理据/span>据/span>道明据/span>>
33据/div>
据/span>tr据/span>>
34据/div>
据tr据/span>>
35据/div>
据道明据/span>>clickandwait.据/span>据/span>道明据/span>>
36据/div>
据道明据/span>>名字据/span>=submit_login据/span>据/span>道明据/span>>
37据/div>
据道明据/span>>据/span>道明据/span>>
38据/div>
据/span>tr据/span>>
39据/div>
据/span>tbody据/span>>据/span>表格据/span>>
40据/div>
据/span>身体据/span>>
41据/div>
据/span>html据/span>>
使用selenium文件进行身份验证据span title="Copy link to clipboard">
- 控件的Selenium文件中,完成登录到应用程序的步骤并记录交互据code class="prism-code language-text">. html据/span>格式。据/li>
- 在据strong>认证>站点认证据/strong>页面,选择据strong>硒据/strong>.据/li>
- 点击据strong>选择文件据/strong>按钮。这将打开“选择文件”弹出窗口。
- 点击据strong>上载文件据/strong>按钮并从计算机上传Selenium文件。据/li>
- 从弹出窗口中的“所有文件”选项卡中选择新上传的文件或现有的Selenium文件。据/li>
- 点击据strong>使用1个选定文件据/strong>按钮。据/li>
会话劫持据span title="Copy link to clipboard">
如果您的Web应用程序使用会话cookie来维护登录状态,可以捕获此cookie并使用会话劫持方法进行身份验证。将会话cookie复制并粘贴到可用框中。
配置浏览器身份验证据span title="Copy link to clipboard">
您可以为每种身份验证类型启用身份验证。在扫描配置中的“身份验证”>“浏览器身份验证”页面上,使用切换启用浏览器身份验证,并配置身份验证方法。据/p>
HTTP身份验证据/summary>
HTTP协议支持使用用户名和密码进行身份验证。您可以使用此参考文章了解有关HTTP身份验证的更多信息:据a href="https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/understanding-http-authentication">https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/unterstand-http-authentication.据/a>
InsightAppSec支持基本协议、NTLM协议和Kerberos协议进行HTTP认证。据/p>
配置身份验证过程据span title="Copy link to clipboard">
- 打开据strong>认证> HTTP认证据/strong>屏幕。据/li>
- 点击据strong>启用http验证据/strong>切换以启用HTTP身份验证。据/li>
- 在相应字段中输入用户名和密码。据/li>
HMAC.据/summary>
HMAC是使用加密散列函数和秘密密钥来进行身份验证的MAC(消息身份验证码)。要了解更多关于HMAC的信息,请参阅据a href="https://en.wikipedia.org/wiki/HMAC">https://en.wikipedia.org/wiki/HMAC据/a>.据/p>
配置HMAC身份验证据span title="Copy link to clipboard">
- 去据strong>验证> HMAC据/strong>页。据/li>
- 使用切换按钮可以据strong>启用HMAC据/strong>.据/li>
- 输入如下信息:据ul>
- 用户名-哈希算法的用户名。据/li>
- 秘钥-用于计算HMAC的唯一代码。发送方和接收方都知道它。
- 哈希算法-选择哈希算法类型。据ul>
- Md5据/li>
- SHA1据/li>
- Sha256据/li>
- 头文件生成DLL文件名-用户创建的DLL文件(据a href="https://support.microsoft.com/en-us/help/815065/what-is-a-dll">https://support.microsoft.com/en-us/help/815065/what-is-a-dll据/a>),包含加密散列函数。仅在使用内部内部引擎时才需要这一点。如果您没有提供文件,系统将使用引擎提供的DLL。
SSL证书据/summary>
您可能需要在客户端验证您的应用程序,以便您可以扫描SSL后面的页面。此身份验证方法可与云和内部部署扫描引擎一起使用。
PFX证书格式据span title="Copy link to clipboard">
SSL证书必须为。pfx文件。据/p>
配置SSL身份验证据span title="Copy link to clipboard">
- 去据strong>> SSL身份验证据/strong>.据/li>
- 在据strong>类型据/strong>下拉,选择据strong>证书。据/strong>
- 选择您的SSL.pfx文件。据/li>
- 3 .可选:如果需要输入密码,请在提供的框中输入。据/li>
配置服务器身份验证据span title="Copy link to clipboard">
在“扫描配置”中,在“身份验证”>“服务器身份验证”页面上,使用Toggle启用服务器身份验证,并配置身份验证方法。据/p>
非统组织据/summary>
OAuth(据a href="https://oauth.net/">https://oauth.net/据/a>)是一种授权方法,用于授予对客户端的细粒度访问权限。Insightappsec支持OAuth 2.0,这是授权的行业标准协议。OAuth 2.0专注于客户端开发人员简单性,同时为Web应用程序,桌面应用程序,移动电话和客厅设备提供特定的授权流程。如果您的应用程序授予InsightappSec访问某些功能,则可以输入所需的详细信息据strong>身份验证> OAuth.据/strong>屏幕。启动扫描时,Insightappsec可以向您的应用程序提供这些详细信息并接收访问令牌。
设置OAuth身份验证据span title="Copy link to clipboard">
如果您想扫描使用OAuth的应用程序,您需要知道应用程序使用的授权类型。您通常可以从应用程序开发人员那里获得这些信息。如果您检查来自连接的流量,通常还可以在URL中看到授予类型。
隐含据/summary>
隐式授权类型是公共客户端可以使用的简化流,在没有额外授权代码交换步骤的情况下立即返回访问令牌。据/p>
通常不建议使用隐式流(有些服务器完全禁止此流)。自从最初编写规范以来,行业最佳实践已经改变,建议公共客户端应该使用带有PKCE扩展的授权代码流。
强制性的属性据span title="Copy link to clipboard">
- 资源服务器URL.据/li>
- 客户ID据/li>
注意:尚不支持PKCE据/p>
客户端的验证授权据/summary>
资源所有者密码凭据授予类型适用于资源所有者与客户端的信任关系,例如设备操作系统或高度特权的应用程序。授权服务器在启用此授权类型时应特别小心,只有当其他流量不可行时允许它。看据a href="https://tools.ietf.org/html/rfc6749">https://tools.ietf.org/html/rfc6749#4.3据/a>了解更多信息。据/p>
强制性的属性据span title="Copy link to clipboard">
- 资源服务器URL.据/li>
- 用户名据/li>
- 密码据/li>
客户端凭据据/summary>
当应用程序请求访问令牌访问自己的资源时,不代表用户访问客户端凭据授予。客户需要为此请求进行身份验证。通常,该服务将允许其他请求参数客户端ID和客户端密钥,或接受HTTP基本AUTH标头中的客户端ID和客户端密钥。
强制性的属性据span title="Copy link to clipboard">
资源服务器URL.据/p>
其他OAuth属性据span title="Copy link to clipboard">
除了身份验证屏幕的OAuth部分中的属性外,还有一些高级选项可以帮助您配置应用程序的OAuth流。据/p>
- jsonpostbodies.据/strong>支持JSON格式的OAuth授权服务器请求和响应据/li>
- OAuthCustomField据/strong>—应发送到授权服务器的任何附加参数据/li>
笔记据span title="Copy link to clipboard">
在大多数情况下,除了隐式授权类型之外,可以使用宏绕过OAuth身份验证。如果您在使用InsightAppSec配置OAuth时遇到问题,应该尝试据a href="//www.gcpym.com/insightappsec/authentication">宏观的身份验证据/a>.据/p>
阿达尔据/summary>
您可以使用Azure Active Directory身份验证库(ADAL)对您的InsightappSec扫描进行身份验证。据/p>
配置ADAL.据span title="Copy link to clipboard">
要配置ADAL身份验证,必须转到据strong>身份验证> ADAL.据/strong>屏幕在“扫描配置向导”中,并设置以下选项:据/p>
- 资源ID据/strong>-这取决于Azure Active Directory (AD)的使用情况。如果你正在使用Azure Native AD,这应该是两个默认值之一,graph.windows.net或graph.microsoft.com。如果您没有使用原生Azure AD,您的AD管理员可能会帮助您为实例获取正确的ID。
- 租户据/strong>-Azure广告租户的域名,例如example.onmicrosoft.com。这可以在Azure Active Directory概览屏幕上找到。据/li>
- 客户ID据/strong>-您已注册的应用程序下的应用程序(客户端)ID。据/li>
- 权威网址据/strong>- 默认为据a href="https://login.microsoftonline.com/">https://login.microsoftonline.com/据/a>如果空着,这个就会被忽略。据/li>
- 用户名据/strong>- 如果您使用的是客户端ID,用户名和密码身份验证流程,这将是您帐户的用户名。据/li>
- 密码据/strong>- 密码不是用户帐户的密码,而是它是“证书和秘密”部分下创建的密钥。您可以将ADAL与OAuth一起使用,作为身份验证协议(参考:据a href="https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth2-implicit-grant-flow">https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth2-implict-grant-flow.据/a>)。据/li>
配置登录和注销设置据span title="Copy link to clipboard">
在尝试经过身份验证的应用程序时,InsightappSec需要一种方法可以知道身份验证成功。它试图通过检查网页的标题和正文来推导应用程序的登录状态。身份验证>高级选项卡中的字段可用于培训InsightAppsec以识别应用程序的登录状态。
假定登录良好据/summary>有时你可能无法找到匹配应用程序登录状态的正则表达式。可能有多个登录链接通向产品的不同区域,InsightAppSec可能试图在所有地方使用相同的凭据,导致账户锁定。您可以启用“**假设良好登录**”开关,提示InsightAppSec在首次登录后不检查登录状态。
登录链接正则表达式据/summary>与指向登录页的链接上的文本匹配的正则表达式。InsightAppSec将使用此正则表达式查找登录链接并应用用户提供的凭据。如果用户已登录,此正则表达式将帮助InsightAppSec避免再次意外爬网登录。据/details>
登录Regex据/summary>如果页面上的文本与此正则表达式匹配,Insightappsec会假定您仍然登录。此正则表达式通常与退出链接匹配,因为签名选项仅在用户仍登录时可用。据/details>
登录页眉正则表达式据/summary>如果用户登录时应用程序始终填充特定的HTTP头,则可以在此字段中使用匹配的正则表达式。如果标头与正则表达式匹配,InsightAppSec将假定用户已登录。据/details>
您可以使用Regex Builder据a href="https://blog.rapid7.com/2018/06/14/new-insightappsec-releases-compliance-reports-and-the-appsec-toolkit/">Rapid7 AppSec工具包据/a>在使用InsightappSec中使用它们之前测试正则表达式。据/p>