如何使用ZAP将请求重定向到另一台主机?

时间:2020-05-04 02:35:27

标签: owasp zap

我是ZAP的新手,我对它的js / ecma脚本了解不多。

基本上,我试图将请求重定向到另一台主机。 假设连接到ZAP代理的应用程序在URL中发出请求:

http://www.somesite.com/path/to/a/file

但是我想将URL中的主机名更改为: another.site.com

因此它实际上会请求:http://www.anothersite.com/path/to/a/file

这是我尝试使用的代码,但是URL在请求中保持不变。

function proxyRequest(msg) {
    // Debugging can be done using println like this
    var uri = msg.getRequestHeader().getURI().toString()
    var host =  msg.getRequestHeader().getURI().getHost().toString()

    print('proxyResponse called for url=' + uri)

    if (host == 'download.qt.io') {
        uri = uri.replace('download.qt.io/online/', 'mirrors.ocf.berkeley.edu/qt/online/')
        msg.getRequestHeader().setHeader('Location', uri)
        print('proxyRequest changed to url=' + uri)
    }

    if (host == 'ftp.jaist.ac.jp') {
        uri = uri.replace('ftp.jaist.ac.jp/pub/qtproject/online/', 'mirrors.ocf.berkeley.edu/qt/online/')
        msg.getRequestHeader().setHeader('Location', uri)
        print('proxyRequest changed to url=' + uri)
    }

    if (host == 'qtproject.mirror.liquidtelecom.com') {
        uri = uri.replace('qtproject.mirror.liquidtelecom.com/online/', 'mirrors.ocf.berkeley.edu/qt/online/')
        msg.getRequestHeader().setHeader('Location', uri)
        print('proxyRequest changed to url=' + uri)
    }

    return true
}

1 个答案:

答案 0 :(得分:1)

选项1:替换规则

从市场上安装Replacer插件: ZAP toolbar marketplace button

  1. 转到“工具”菜单,然后选择“替换器选项”。
  2. 设置一个规则,如以下屏幕截图所示。
  3. 适当保存/确定。
  4. 现在,当您进行浏览等操作时,所有流量都将被重定向/重写。

Suggested Replacer rule details

选项2:HttpSender脚本

  1. 创建一个新的HttpSender脚本,类似于以下示例:
function sendingRequest(msg, initiator, helper) {
  var host = msg.getRequestHeader().getURI().getHost();
  if (host.equals("www.somesite.com")) {
        uri = msg.getRequestHeader().getURI();
        uri.setEscapedAuthority("www.anothersite.com");
        msg.getRequestHeader().setURI(uri);
  }
  return msg;
}

function responseReceived(msg, initiator, helper) {}

选项3:托管文件条目

  1. 转到命令提示符,然后nslookup www.somesite.com,记下IP地址(w.x.y.z)。
  2. 在主机文件中,添加一个条目,将指定的IP(w.x.y.z)与www.anothersite.com关联。
    (您可能需要重新启动ZAP /浏览器才能使此更改生效。在Linux上,您可能需要sudo来编辑文件,在Windows上,则需要以管理员用户身份对其进行编辑。)

(WRT编辑您的主机文件的更多详细信息:https://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/