基于表单的身份验证OWASP ZAP for HTTPS application

时间:2018-05-10 08:07:45

标签: owasp zap

我正在尝试使用ZAP的python API使用OWASP ZAP的基于表单的身份验证功能。

我注意到在使用HTTP应用程序时(例如 - http://demo.testfire.net/),它可以在登录后进行蜘蛛并提供其他URL。但是,当我为HTTPS应用程序尝试相同时,它不会获取额外的URL登录后的网址。

我的问题是 - ZAP是否仅支持与HTTP相关的Web应用程序的基于表单的身份验证?

1 个答案:

答案 0 :(得分:0)

是的,我们有一个常见问题解答:https://github.com/zaproxy/zaproxy/wiki/FAQformauth

在使用API​​时难以调试问题,所以我建议首先使用UI,一旦你完成了工作,然后将你所做的事情转换为API。

通过用户界面:

  1. 列表项
  2. 通过ZAP代理时探索您的应用
  3. 使用有效的用户名和密码登录
  4. 定义上下文,例如右键单击“站点”选项卡中应用程序的顶部节点,然后选择“包含在上下文中”
  5. 在“网站”或“历史记录”标签中找到“登录请求”
  6. 右键单击它并选择“标记为上下文”/“基于表单的身份验证登录请求”
  7. 检查用户名和密码参数是否设置正确 - 几乎肯定不会!
  8. 在响应中查找可用于确定用户是否已登录的字符串
  9. 突出显示此字符串,右键单击并选择“标记为上下文”/“登录/注销指示符”相关 - 您只需设置其中一个,而不是两个
  10. 双击相关的Context节点并导航到“Users”页面 - 检查用户详细信息是否正确,添加您要使用的任何其他用户并启用所有用户
  11. 导航到“强制用户”上下文页面,确保选择要测试的用户
  12. 现在应启用“强制用户模式已禁用 - 单击以启用”按钮
  13. 按下此按钮将导致ZAP在检测到用户不再登录时重新发送身份验证请求,即使用“登录”或“已注销”指示符。
  14. 通过API,过程是相同的,但使用API​​调用:

    context/includeInContext
    authentication/setAuthenticationMethod
    
    authMethodName : formBasedAuthentication
    authMethodConfigParams : loginUrl=http://example.com/login.html&loginRequestData=username%3D%7B%25username%25%7D%26password%3D%7B%25password%25%7D
        authentication/setLoginIndicator or setLogoutIndicator
        forcedUser/setForcedUserModeEnabled
    

    authMethodConfigParams参数的值必须是URL编码的,在这种情况下,loginRequestData是username = {%username%}& password = {%password%}