Giter Site home page Giter Site logo

burp-pac's Introduction

Burp Proxy Auto-Config Extension

Build Status Code Coverage

Are you using Burp inside a network that uses a Proxy Auto-Config (PAC) script to dynamically determine which upstream proxies to use for some given host or hosts?

Are you lazy and just want an extension to figure this out auto-magically, without any user interaction?

Well then, the Burp Proxy Auto-Config (PAC) extension is for you! It automatically configures project-level upstream proxies for use by Burp based upon the desktop environment. It uses proxy-vole, which has support for PAC scripts built-in, in addition to supporting Java properties and environmental variables.

Q & A

Q: I installed the extension but don't see anything to configure! How do I configure it?

A: Currently, there's nothing to configure! Once enabled, it automatically adds upstream proxies. Don't like that? Unload and/or remove the extension. Once unloaded, it should remove those upstream proxies it added, and only those.

Q: Will this extension screw up my other extensions?

A: Hopefully not! If you suspect something, please file an issue.

Q: How can I troubleshoot an upstream proxy issue that this extension might be causing?

A: Once Feature #2 is implemented, there will be a UI to aid in troubleshooting. Otherwise, manually inspecting the project-level upstream proxies should also help.

Q: Does this extension mess with my Burp settings?

A: Yes, by design it modifies the current project-level settings to add upstream proxies. It also will automatically enable "Project options" โ†’ "Upstream Proxy Servers" โ†’ "Override user options" due to limitations in the Burp Extender API. It currently does not reset this value.

Q: _Does this extension allow peroxy authentication

A: Yes, this is the prupose of this fork. A very limited but simple basic authentification support. If env var BURP_PROXY_USERNAME exist, then each time this extension decides to add a proxy in the project configuration, this proxy will be set with authentification type Basic, and credentials will be retrieved from env BURP_PROXY_USERNAME and BURP_PROXY_PASSWORD. For Linux, this is export export URP_PROXY_USERNAME="blablabla" For OSX, this is launchctl setenv URP_PROXY_USERNAME "blablabla"

Comparison to Other Burp PAC Extensions

Similarities:

  • Both extensions use a library that evaluates the JavaScript PAC file within a Rhino ScriptEngine. However, this extension uses the newer version of proxy-vole. Proxy PAC uses an older unsupported version.

Differences:

  • The "Proxy PAC" extension is written in Python and executed via Jython. This extension is written in Java.
  • "Proxy PAC" starts a local web proxy via another thread. The user manually configures Burp to use this local web proxy. The proxy then initiates a client connection to whatever upstream proxy server, adding additional network latency per-request. This extension does not start a local web server. Rather, it modifies Burp's project-level configuration to add a per-host server to it. This is all automatic. Burp then handles making the upstream request directly.
  • "Proxy PAC" does not seem to have any test case coverage, which makes modifications more challenging #yolo. This extension has some test case coverage.

Security

This plugin assumes the following are trusted sources of proxy information:

burp-pac's People

Contributors

jpasski avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.