0

我正在尝试将 zap 任务自动化到我的构建过程中。这是我所做的:

  • 运行 zap
  • 运行硒测试
  • 运行 zap 蜘蛛
  • 运行 zap activeScan
  • 保存 zap 会话
  • 运行 zap 警报检查并报告它
  • 结束电击

这是我的 ant build.xml 的目标:

    <SpiderURL zapAddress="${zapaddr}" zapPort="${zapport}" url="${targetHost}" debug="true"/>
    <sleep seconds="5"/>        
    <ActiveScanSite zapAddress="${zapaddr}" zapPort="${zapport}" url="${targetHost}" debug="true"/>
    <sleep seconds="5"/>        

    <tstamp>
        <format property="timestamp" pattern="MM-dd-yyyy HH-mm-ss"/>
    </tstamp>

    <SaveZAPSession zapAddress="${zapaddr}" zapPort="${zapport}" name="${user.dir}/test ${timestamp}" debug="true"/>    

    <record name="Report.txt" action="start" append="true" />
    <alertCheckTask zapAddress="${zapaddr}" zapPort="${zapport}" debug="false">
        <ignoreAlert risk="Low" />
        <ignoreAlert risk="Medium" />
        <requirealert alert="Cross Site Scripting (Reflected)" />
    </alertCheckTask>
    <record name="Report.txt" action="stop" />

问题是:主动扫描没有完成,它被下一个任务(保存zap会话)打断,这意味着报告的警报也没有覆盖所有的主动扫描结果。

4

1 回答 1

0

首先保存会话,然后再执行其他任何操作。ZAP 会话是一个数据库,一旦它被保存(或者更确切地说是“持久”,正如它现在在 UI 中所指的那样),那么任何更改也会自动保存。如果您稍后保存/保留 ZAP 会话,那么您实际上只是将临时数据库复制到新的一次,这是非常低效的。这就是为什么我们会在您打开 ZAP UI 时提示您保持会话。

说了这么多,我实际上建议直接使用 ZAP Java 客户端库,因为它提供了对 ZAP 的更多控制。Ant 任务非常有限。我们还没有真正更新它们,部分原因是我们不知道是否有人在使用它们!如果您仍打算使用它们,请告诉我 - 我怀疑它们可能需要一些调整 :)

于 2017-05-03T13:42:20.183 回答