在 docker 环境中通过 OWASP zap 扫描 Rest API



我设置了一个Azure devops CI/CD构建,该构建将启动一个vm,其中Owasp-Zap作为代理运行,Owasp-Zap Azure deveps任务将在目标url上运行,并在Azure存储中复制我的报告。

遵循了这个家伙的美丽教程:https://kasunkodagoda.com/2017/09/03/introducing-owasp-zed-attack-proxy-task-for-visual-studio-team-services/(也是创建Azure devops任务的人)

一切都很好,但最近我想使用RESTApi作为目标url。azure devops中的Owasp zap任务没有这个能力。甚至问了创作者(https://github.com/kasunkv/owasp-zap-vsts-task/issues/30#issuecomment-452258621),他也不认为这可以通过Azure devops任务获得,只能通过docker获得。

在我的下一个任务中,我现在正试图让它在docker图像中运行。(首先是在Azure devops内部,但这并不顺利https://github.com/zaproxy/zaproxy/issues/5176)最后开始学习本教程(https://zaproxy.blogspot.com/2017/06/scanning-apis-with-zap.html)

我试图通过以下步骤运行docker映像:

---docker pull owasp/zap2docker-weekly

--运行集装箱

-------命令:docker run -v ${pwd}:/zap/wrk/:rw -t owasp/zap2docker-weekly zap-api-scan.py -t https://apiurl/api.json -f openapi -z "-configfile /zap/wrk/options.prop">

------- options.prop file
-config replacer.full_list(0).description=auth1 
-config replacer.full_list(0).enabled=true 
-config replacer.full_list(0).matchtype=REQ_HEADER 
-config replacer.full_list(0).matchstr=Authorization 
-config replacer.full_list(0).regex=false 
-config replacer.full_list(0).replacement=Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

但这只扫描根url,而不是每个url。当我输入这个问题时,我试图从根目录下载json文件,并运行docker run命令,同时传递带有-t的json文件。我正在获取导入的url的数量:似乎什么都是。但这似乎冻结在powershell内部。

我错过了哪一步来对我的rest api进行完整的递归扫描?有人有什么想法或帮助吗?

首先,属性文件格式错误。如果直接在命令行上设置选项,则只需要"-config"one_answers"\"。在属性文件中,您应该具有:

replacer.full_list(0).description=auth1
replacer.full_list(0).enabled=true
replacer.full_list(0).matchtype=REQ_HEADER
replacer.full_list(0).matchstr=Authorization
replacer.full_list(0).regex=false
replacer.full_list(0).replacement=Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

第二,什么https://apiurl/api.json返回并检查是否可以从docker容器中访问它?尝试运行

curl https://apiurl/api.json

看看你得到了什么。

相关内容

  • 没有找到相关文章

最新更新