Path: blob/master/data/msfcrawler/forms.rb
21517 views
##1# This module requires Metasploit: https://metasploit.com/download2# Current source: https://github.com/rapid7/metasploit-framework3##45require 'pathname'6require 'nokogiri'7require 'uri'89class CrawlerForms < BaseParser1011def parse(request,result)12return unless result['Content-Type'].include?('text/html')1314doc = Nokogiri::HTML(result.body.to_s)15doc.css('form').each do |f|16hr = f['action']1718# Removed because unused19#fname = f['name']20#fname = 'NONE' if fname.empty?2122m = (f['method'].empty? ? 'GET' : f['method'].upcase)2324arrdata = []2526f.css('input').each do |p|27arrdata << "#{p['name']}=#{Rex::Text.uri_encode(p['value'])}"28end2930data = arrdata.join("&").to_s3132begin33hreq = urltohash(m, hr, request['uri'], data)34hreq['ctype'] = 'application/x-www-form-urlencoded'35insertnewpath(hreq)36rescue URI::InvalidURIError37#puts "Parse error"38#puts "Error: #{link[0]}"39end4041end42end43end44454647