Class: Watobo::Gui::FuzzerCheck
- Inherits:
-
ActiveCheck
- Object
- Session
- ActiveCheck
- Watobo::Gui::FuzzerCheck
- Defined in:
- lib/watobo/gui/fuzzer_gui.rb
Constant Summary
Constants included from Constants
Constants::AC_GROUP_APACHE, Constants::AC_GROUP_DOMINO, Constants::AC_GROUP_ENUMERATION, Constants::AC_GROUP_FILE_INCLUSION, Constants::AC_GROUP_FLASH, Constants::AC_GROUP_GENERIC, Constants::AC_GROUP_JBOSS, Constants::AC_GROUP_JOOMLA, Constants::AC_GROUP_SAP, Constants::AC_GROUP_SQL, Constants::AC_GROUP_TYPO3, Constants::AC_GROUP_XSS, Constants::AUTH_TYPE_BASIC, Constants::AUTH_TYPE_DIGEST, Constants::AUTH_TYPE_NONE, Constants::AUTH_TYPE_NTLM, Constants::CHAT_SOURCE_AUTO_SCAN, Constants::CHAT_SOURCE_FUZZER, Constants::CHAT_SOURCE_INTERCEPT, Constants::CHAT_SOURCE_MANUAL, Constants::CHAT_SOURCE_MANUAL_SCAN, Constants::CHAT_SOURCE_PROXY, Constants::CHAT_SOURCE_UNDEF, Constants::DEFAULT_PORT_HTTP, Constants::DEFAULT_PORT_HTTPS, Constants::FINDING_TYPE_HINT, Constants::FINDING_TYPE_INFO, Constants::FINDING_TYPE_UNDEFINED, Constants::FINDING_TYPE_VULN, Constants::FIRST_TIME_FILE, Constants::GUI_REGULAR_FONT_SIZE, Constants::GUI_SMALL_FONT_SIZE, Constants::ICON_PATH, Constants::LOG_DEBUG, Constants::LOG_INFO, Constants::SCAN_CANCELED, Constants::SCAN_FINISHED, Constants::SCAN_PAUSED, Constants::SCAN_STARTED, Constants::TE_CHUNKED, Constants::TE_COMPRESS, Constants::TE_DEFLATE, Constants::TE_GZIP, Constants::TE_IDENTITY, Constants::TE_NONE, Constants::VULN_RATING_CRITICAL, Constants::VULN_RATING_HIGH, Constants::VULN_RATING_INFO, Constants::VULN_RATING_LOW, Constants::VULN_RATING_MEDIUM, Constants::VULN_RATING_UNDEFINED
Instance Attribute Summary
Attributes inherited from ActiveCheck
Instance Method Summary collapse
- #fuzzels(fuzzers, index = 0, result = nil) ⇒ Object
- #generateChecks(chat) ⇒ Object
-
#initialize(project, fuzzer_list, filter_list, requestEditor, prefs = {}) ⇒ FuzzerCheck
constructor
A new instance of FuzzerCheck.
- #reset ⇒ Object
Methods inherited from ActiveCheck
#addFinding, #cancel, #checksRunning?, #continue, #disable, #do_test, #enable, #enabled=, #enabled?, #fileExists?, #getCheckCount, #maxChecks, #maxChecks=, #postParmNames, #resetCounters, #run_checks, #stop, #updateCounters, #urlParmNames, #waitLogin
Methods inherited from Session
#addProxy, #clearEvents, #doRequest, #getProxy, #get_settings, #notify, #readHTTPBody, #runLogin, #sendHTTPRequest, #sessionSettings, #setSIDCache, #sidCache, #subscribe
Constructor Details
#initialize(project, fuzzer_list, filter_list, requestEditor, prefs = {}) ⇒ FuzzerCheck
Returns a new instance of FuzzerCheck.
30 31 32 33 34 35 36 |
# File 'lib/watobo/gui/fuzzer_gui.rb', line 30 def initialize(project, fuzzer_list, filter_list, requestEditor, prefs={} ) super(project.object_id, prefs) @fuzzer_list = fuzzer_list @requestEditor = requestEditor @filter_list = filter_list @prefs = prefs end |
Instance Method Details
#fuzzels(fuzzers, index = 0, result = nil) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/watobo/gui/fuzzer_gui.rb', line 38 def fuzzels(fuzzers, index=0, result=nil) begin unless fuzzers[index].nil? fuzzers[index].run(result) do |fuzz| if index < fuzzers.length - 1 fuzzels(fuzzers, index+1, fuzz) do |sr| yield sr end else yield fuzz end end end rescue => bang puts bang puts bang.backtrace if $DEBUG end end |
#generateChecks(chat) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/watobo/gui/fuzzer_gui.rb', line 63 def generateChecks(chat) unless @fuzzer_list.empty? fuzzels(@fuzzer_list) do |fuzzle| checker = proc{ test_fuzzle = Hash.new test_fuzzle.update fuzzle fuzz_request = @requestEditor.parseRequest(test_fuzzle) fuzz_request.extend Watobo::Mixin::Shaper::Web10 fuzz_request.extend Watobo::Mixin::Parser::Web10 fuzz_request.extend Watobo::Mixin::Parser::Url test_request, test_response = doRequest(fuzz_request, @prefs) notify(:fuzzer_match, test_fuzzle, test_request, test_response, test_response.join) if @filter_list.empty? @filter_list.each do |f| matches = f.func.call(test_response) if f.func.respond_to? :call matches.each do |match| notify(:fuzzer_match, test_fuzzle, test_request, test_response, match) end end [ test_request, test_response ] } yield checker end end end |
#reset ⇒ Object
59 60 61 |
# File 'lib/watobo/gui/fuzzer_gui.rb', line 59 def reset() end |