Sha256: f3690ff64ed2676f831bb0d697886dcb20ff4a06ddcacb1fe48c75420d518858

Contents?: true

Size: 1.42 KB

Versions: 16

Compression:

Stored size: 1.42 KB

Contents

#!/usr/bin/env jruby

require 'rubygems'
require 'buby'
require 'mechanize'
require 'rbkb/http'
require 'irb'

include Java

# This Buby handler implementation simply keeps cookie state synched
# for a Mechanize agent by intercepting all requests sent through the
# Burp proxy. This lets you use Mechanize in tandem with your browser
# through Burp without having to fuss around with cookies.
module MechGlue
  attr_accessor :mech_agent

  def evt_proxy_message(*param)
    msg_ref, is_req, rhost, rport, is_https, http_meth, url, 
    resourceType, status, req_content_type, message, action = param

    if (not is_req) and (message =~ /Set-Cookie/i)

      rsp = Rbkb::Http::Response.new(message, :ignore_content_length => true)

      # Get an uri object ready for mechanize
      uri = URI.parse(url)
      uri.scheme = (is_https)? "https" : "http"
      uri.host = rhost
      uri.port = rport
      
      # Grab cookies from headers:
      rsp.headers.get_header_value('Set-Cookie').each do |cookie| 
        WWW::Mechanize::Cookie.parse(uri, cookie) do |c|
          @mech_agent.cookie_jar.add(uri, c)
        end
      end
    end
    return(message)
  end
end


if __FILE__ == $0
  $mech = WWW::Mechanize.new
  #$mech.set_proxy('localhost', '8080')

  $burp = Buby.new()
  $burp.extend(MechGlue)
  $burp.mech_agent = $mech
  $burp.start_burp

  puts "$burp is set to #{$burp.class}"
  puts "$mech is set to #{$mech.class}"
  IRB.start
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
emonti-buby-1.1.4.1 samples/mechanize_burp.rb
emonti-buby-1.1.4 samples/mechanize_burp.rb
buby-1.6.0-java samples/mechanize_burp.rb
buby-1.5.2-java samples/mechanize_burp.rb
buby-1.5.1-java samples/mechanize_burp.rb
buby-1.5.0-java samples/mechanize_burp.rb
buby-1.5.0.pre4-java samples/mechanize_burp.rb
buby-1.5.0.pre3-java samples/mechanize_burp.rb
buby-1.5.0.pre2-java samples/mechanize_burp.rb
buby-1.5.0.pre1-java samples/mechanize_burp.rb
buby-1.3.3-java samples/mechanize_burp.rb
buby-1.3.1-java samples/mechanize_burp.rb
buby-1.3.0-java samples/mechanize_burp.rb
buby-1.2.0-java samples/mechanize_burp.rb
buby-1.1.7-java samples/mechanize_burp.rb
buby-1.1.6-java samples/mechanize_burp.rb