OWASP-ZAP:如何使用脚本暂停传统的蜘蛛



我有一个需求,我需要在以下条件下暂停蜘蛛

响应码为302
  1. 当响应头的位置与值设置为登录页面时,例如:"login.jsp">

以下是我目前正在做的脚本:HTTP发送方引擎:Jython脚本:

import httplib
HOST = "127.0.0.1"
PORT = 2031
APIKEY="2031"
def sendingRequest(msg, initiator, helper):pass

def responseReceived(msg, initiator, helper):
if initiator == 3:
try:
h=httplib.HTTPConnection("{0}:{1}".format(HOST,PORT))
if h:
if msg.getResponseHeader() and msg.getResponseHeader().getStatusCode()==302:
if msg.getResponseHeader().getHeader("Location") is not None:
if "Login.jsp" in msg.getResponseHeader().getHeader("Location"):
h.request("GET", "/JSON/spider/action/pauseAllScans/?apikey={0}".format(APIKEY))


except: pass

我想知道是否有其他或更好的方法来实现这一点?

提前谢谢你。

您还没有说明为什么要暂停扫描。我猜这样你就可以重新认证了。如果是这样,那么我认为更好的选择是配置ZAP来处理身份验证,然后如果用户注销,它将自动重新进行身份验证。如果你真的想按照你的方式来做,那么你不必调用API——你的脚本已经在ZAP中运行了,所以可以通过代码暂停蜘蛛。

最新更新