Class: Watobo::Modules::Active::Sap::Its_commands
- Inherits:
-
ActiveCheck
- Object
- Session
- ActiveCheck
- Watobo::Modules::Active::Sap::Its_commands
- Defined in:
- modules/active/sap/its_commands.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
- #generateChecks(chat) ⇒ Object
-
#initialize(project, prefs = {}) ⇒ Its_commands
constructor
A new instance of Its_commands.
Methods inherited from ActiveCheck
#addFinding, #cancel, #checksRunning?, #continue, #disable, #do_test, #enable, #enabled=, #enabled?, #fileExists?, #getCheckCount, #log_console, #maxChecks, #maxChecks=, #postParmNames, #reset, #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, prefs = {}) ⇒ Its_commands
Returns a new instance of Its_commands.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'modules/active/sap/its_commands.rb', line 30 def initialize(project, prefs={}) super(project, prefs) @info.update( :check_name => 'SAP ITS: Default Commands', # name of check which briefly describes functionality, will be used for tree and progress views :description => "Identifies vulnerable SAP ITS commands", # description of checkfunction :author => "Andreas Schmidt", # author of check :version => "0.9", # check version :check_group => AC_GROUP_SAP ) @finding.update( :threat => 'Multiple', # thread of vulnerability, e.g. loss of information :class => "SAP ITS: Default Commands", # vulnerability class, e.g. Stored XSS, SQL-Injection, ... :type => FINDING_TYPE_VULN # FINDING_TYPE_HINT, FINDING_TYPE_INFO, FINDING_TYPE_VULN ) # commands 2d array containing the command name and risk rating @commands=[ ["AgateInstallCheck", VULN_RATING_LOW], ["fieldDump", VULN_RATING_LOW], ] end |
Instance Method Details
#generateChecks(chat) ⇒ Object
57 58 59 60 61 62 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 92 93 94 |
# File 'modules/active/sap/its_commands.rb', line 57 def generateChecks(chat) begin if chat.request.url =~ /\/wgate\/(\w*)\// then @commands.each do |cmd, risk| checker = proc{ test_request = nil test_response = nil test = chat.copyRequest test.add_get_parm("~command", "#{cmd.dup}") test_request,test_response = doRequest(test,:default => true) if test_response.status =~ /200/i then test_chat = Chat.new(test,test_response,chat.id) addFinding( test_request,test_response, :test_item => chat.request.url, :check_pattern => "#{cmd.dup}", :proof_pattern => "#{test_response.status}", :chat => chat, :title => "#{cmd.dup}" ) end [ test_request, test_response ] } yield checker end end rescue => bang puts bang puts "ERROR!! #{Module.nesting[0].name}" raise end end |