首页 文章

OWASP zap python api身份验证

提问于
浏览
-2

我想首先说我喜欢这个工具,如果你熟悉Zap,API就会以一种非常容易理解的方式编写 . 我遇到的唯一麻烦是我找不到关于python API的很多文档,所以我已经离开了源代码并验证它对应用程序的工作原理 . 我已经能够提取扫描并设置上下文,但我似乎无法正确地从身份验证模块中调用任何内容 . 我相信,我的一个问题是,在调用函数时,我并不完全确定要使用的确切变量或它们各自的格式 . 下面是我一起报废的一些示例代码 . 以下每次使用身份验证功能都会让我失望 . 即使有人要看这个并告诉我去哪里或者希望自己解决这个问题,我将非常感激 .

from zapv2 import ZAPv2

context = 'new_attack'

authmethodname = 'formBasedAuthentication'

authmethodconfigparams = "".join('loginUrl=someloginpage' 'loginRequestData=username%3D%7B%25user1%25%7D%26' 'password%3D%7B%25password%25%7D')

target = 'some target but I cant put more than 2 links in this question'

apikey = 'password'

zap = ZAPv2(apikey=apikey)

print zap.context.new_context('new_attack')

print zap.context.include_in_context(context, 'https://192.168.0.1.*')

print zap.context.context(context)

#anything below here gives me 'Missing Params' an error from zap
print zap.authentication.set_logged_in_indicator(context, loggedinindicatorregex='Logged in')

print zap.authentication.set_logged_out_indicator(context, 'Sorry, the username or password you entered is incorrect')


print zap.authentication.set_authentication_method(context, authmethodname, authmethodconfigparams)

1 回答

  • 0

    该项目的开发成员能够回答我的问题,所以我想我也会把它放在这里 . 本质上,身份验证功能将contextid和userid作为参数,我传递了上下文名称和用户名 . 我还从源代码中解释了一些其他错误 . 希望这也有助于其他开始使用API的人,因为没有很多文档 . 来自github page zaproxy;用户名thc202 - “

    from zapv2 import ZAPv2
    context = 'new_attack'
    authmethodname = 'formBasedAuthentication'
    authmethodconfigparams = "".join('loginUrl=https://192.168.0.1/dologin.html' '&loginRequestData=username%3D%7B%25username%25%7D%26' 'password%3D%7B%25password%25%7D')
    target = 'https://192.168.0.1'
    apikey = 'password'
    zap = ZAPv2(proxies={'http': 'http://127.0.0.1:8119', 'https': 'http://127.0.0.1:8119'}, apikey=apikey)
    
    contextid = zap.context.new_context(context)
    print contextid
    print zap.context.include_in_context(context, 'https://192.168.0.1.*')
    
    print zap.context.context(context)
    
    print zap.authentication.set_authentication_method(contextid, authmethodname, authmethodconfigparams)
    # The indicators should be set after setting the authentication method.
    print zap.authentication.set_logged_in_indicator(contextid, loggedinindicatorregex='Logged in')
    print zap.authentication.set_logged_out_indicator(contextid, 'Sorry, the username or password you entered is incorrect')
    
    userid = zap.users.new_user(contextid, 'User 1')
    print userid
    print zap.users.set_authentication_credentials(contextid, userid, 'username=MyUserName&password=MySecretPassword')
    print zap.users.set_user_enabled(contextid, userid, True)
    
    print zap.spider.scan_as_user(contextid, userid, target)
    

相关问题