Wapiti XML report import

The following pull request adds support for the XML report wapiti can spit out. It saves WebVulns to the DB. I do not see a way to view the current web vulns in the db in the framework, so I used irb to verify the data was being saved appropriately

Below is a run through
---------------------------------------------------------------
Script started on Sun 13 May 2012 02:12:33 PM PDT
bperry@ubuntu: ~/work/moar_metsploit/metasploit-frameworkbperry@ubuntu:~/work/moar_metsploit/metasploit-framework$ ./msfconsole -L

=[ [33mmetasploit v4.3.0-release [core:4.3 api:1.0][0m
+ -- --=[ 839 exploits - 472 auxiliary - 142 post
+ -- --=[ 250 payloads - 27 encoders - 8 nops

msf> db_connect postgres:password@127.0.0.1:5433/msf_openvas
msf> db_import ~/Desktop/wapiti.rpt 
msf> hosts -d
  Hosts
  =====

address        mac  name           os_name  os_flavor  os_sp  purpose  info  comments
-------        ---  ----           -------  ---------  -----  -------  ----  --------
192.168.1.116       192.168.1.116  Unknown                    device         

[*] Deleted 1 hosts
msf> db_import ~/Desktop/wapiti.rpt 
[*] Importing 'Wapiti XML' data
[*] Successfully imported /home/bperry/Desktop/wapiti.rpt
msf> hosts
  Hosts
  =====
 
address        mac  name           os_name  os_flavor  os_sp  purpose  info  comments
-------        ---  ----           -------  ---------  -----  -------  ----  --------
192.168.1.116       192.168.1.116  Unknown                    device         

msf> irb
[*] Starting IRB shell...

  >> ::Mdm::WebVuln.find(:all)
  => [#<Mdm::WebVuln id: 48, web_site_id: 5, created_at: "2012-05-13 21:13:11", updated_at: "2012-05-13 21:13:11", path: "/cgi-bin/badstore.cgi?action=search&searchquery=%BF...", method: "GET", params: "action=search&searchquery=%BF%27%22%28", pname: "searchquery=%BF%27%22%28", risk: 0, name: "MySQL Injection (searchquery)", query: "action=search&searchquery=%BF%27%22%28", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 49, web_site_id: 5, created_at: "2012-05-13 21:13:11", updated_at: "2012-05-13 21:13:11", path: "/cgi-bin/badstore.cgi?action=cartadd", method: "POST", params: "Add+Items+to+Cart=Add+Items+to+Cart&cartitem=%BF%27...", pname: "cartitem=%BF%27%22%28", risk: 0, name: "MySQL Injection coming from http://192.168.1.116/cg...", query: "action=cartadd", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 50, web_site_id: 5, created_at: "2012-05-13 21:13:11", updated_at: "2012-05-13 21:13:11", path: "/cgi-bin/badstore.cgi?action=moduser", method: "POST", params: "pwdhint=on&DoMods=Reset+User+Password&email=%BF%27%...", pname: "email=%BF%27%22%28", risk: 0, name: "MySQL Injection coming from http://192.168.1.116/cg...", query: "action=moduser", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 51, web_site_id: 5, created_at: "2012-05-13 21:13:11", updated_at: "2012-05-13 21:13:11", path: "/cgi-bin/badstore.cgi?action=login", method: "POST", params: "passwd=on&Login=Login&email=%BF%27%22%28", pname: "email=%BF%27%22%28", risk: 0, name: "MySQL Injection coming from http://192.168.1.116/cg...", query: "action=login", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 52, web_site_id: 5, created_at: "2012-05-13 21:13:11", updated_at: "2012-05-13 21:13:11", path: "/cgi-bin/badstore.cgi?action=register", method: "POST", params: "pwdhint=%BF%27%22%28&passwd=on&Register=Register&ro...", pname: "pwdhint=%BF%27%22%28", risk: 0, name: "MySQL Injection coming from http://192.168.1.116/cg...", query: "action=register", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 53, web_site_id: 5, created_at: "2012-05-13 21:13:12", updated_at: "2012-05-13 21:13:12", path: "/cgi-bin/badstore.cgi?action=register", method: "POST", params: "pwdhint=on&passwd=on&Register=Register&role=%BF%27%...", pname: "role=%BF%27%22%28", risk: 0, name: "MySQL Injection coming from http://192.168.1.116/cg...", query: "action=register", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 54, web_site_id: 5, created_at: "2012-05-13 21:13:12", updated_at: "2012-05-13 21:13:12", path: "/cgi-bin/badstore.cgi?action=register", method: "POST", params: "pwdhint=on&passwd=on&Register=Register&role=U&fulln...", pname: "fullname=%BF%27%22%28", risk: 0, name: "MySQL Injection coming from http://192.168.1.116/cg...", query: "action=register", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 55, web_site_id: 5, created_at: "2012-05-13 21:13:12", updated_at: "2012-05-13 21:13:12", path: "/cgi-bin/badstore.cgi?action=register", method: "POST", params: "pwdhint=on&passwd=on&Register=Register&role=U&fulln...", pname: "email=%BF%27%22%28", risk: 0, name: "MySQL Injection coming from http://192.168.1.116/cg...", query: "action=register", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 56, web_site_id: 5, created_at: "2012-05-13 21:13:12", updated_at: "2012-05-13 21:13:12", path: "/cgi-bin/badstore.cgi?action=cartadd", method: "POST", params: "Add+Items+to+Cart=wgfkp97fbd&cartitem=%27+or+benchm...", pname: "cartitem=%27+or+benchmark%2810000000%2CMD5%281%29%2...", risk: 0, name: "Blind SQL Injection coming from http://192.168.1.11...", query: "action=cartadd", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 57, web_site_id: 5, created_at: "2012-05-13 21:13:12", updated_at: "2012-05-13 21:13:12", path: "/cgi-bin/badstore.cgi?action=login", method: "POST", params: "passwd=rwk7jyvjzi&Login=phhs0s8zt1&email=%27+or+ben...", pname: "email=%27+or+benchmark%2810000000%2CMD5%281%29%29%2...", risk: 0, name: "Blind SQL Injection coming from http://192.168.1.11...", query: "action=login", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 58, web_site_id: 5, created_at: "2012-05-13 21:13:12", updated_at: "2012-05-13 21:13:12", path: "/cgi-bin/badstore.cgi?action=supplierportal", method: "POST", params: "passwd=fg11ap3xyb&Login=gkzrs7q2un&email=%27+or+ben...", pname: "email=%27+or+benchmark%2810000000%2CMD5%281%29%29%2...", risk: 0, name: "Blind SQL Injection coming from http://192.168.1.11...", query: "action=supplierportal", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">, #<Mdm::WebVuln id: 59, web_site_id: 5, created_at: "2012-05-13 21:13:12", updated_at: "2012-05-13 21:13:12", path: "/cgi-bin/badstore.cgi?action=search&searchquery=%3C...", method: "GET", params: "action=search&searchquery=%3Cscript%3Ealert%28%225m...", pname: "searchquery=%3Cscript%3Ealert%28%225mij8cuj3f%22%29...", risk: 0, name: "XSS (searchquery)", query: "action=search&searchquery=%3Cscript%3Ealert%28%225m...", category: "imported", confidence: "90", description: "", blame: "", request: nil, proof: "">]
>> exit
msf> exit
bperry@ubuntu: ~/work/moar_metsploit/metasploit-framework$ 

Script done on Sun 13 May 2012 02:13:51 PM PDT