Class: Watobo::Gui::TokenScriptSettings

Inherits:
FXVerticalFrame
  • Object
show all
Includes:
Constants
Defined in:
lib/watobo/gui/csrf_token_dialog.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::AUTH_TYPE_UNKNOWN, 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 Method Summary collapse

Constructor Details

#initialize(parent, target_chat) ⇒ TokenScriptSettings

Returns a new instance of TokenScriptSettings.



313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
# File 'lib/watobo/gui/csrf_token_dialog.rb', line 313

def initialize(parent, target_chat)
  @target_chat = target_chat
  @table_filter = FXDataTarget.new('')
  @sel_row = -1
  super(parent, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)

  splitter = FXSplitter.new(self, LAYOUT_SIDE_TOP|LAYOUT_FILL_X|SPLITTER_VERTICAL|LAYOUT_FILL_Y|SPLITTER_TRACKING)
  script_frame = FXVerticalFrame.new(splitter, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_GROOVE, :height => 300,:padding => 0)

  frame = FXHorizontalFrame.new(script_frame, :opts => LAYOUT_FILL_X)
  label = FXLabel.new(frame, "Token Script Requests:")
  @add_button = FXButton.new(frame, "Add Request...", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT)
  @add_button.connect(SEL_COMMAND, method(:startSelectChatDialog))

  @rem_button = FXButton.new(frame, "Remove Request", nil, nil, 0, FRAME_RAISED|FRAME_THICK|LAYOUT_RIGHT)
  @rem_button.connect(SEL_COMMAND, method(:removeRequest))
  @rem_button.disable

  label.setFont(FXFont.new(getApp(), "helvetica", 12, FONTWEIGHT_BOLD, FONTSLANT_ITALIC, FONTENCODING_DEFAULT))
  script_table_frame = FXVerticalFrame.new(script_frame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
  @scriptTable = ConversationTable.new(script_table_frame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y)
  @scriptTable.connect(SEL_CLICKED, method(:onTableClick))

  chat_viewer_frame = FXVerticalFrame.new(splitter, LAYOUT_FILL_X|LAYOUT_FILL_Y, :height => 300, :padding => 0)
  tabBook = FXTabBook.new(chat_viewer_frame, nil, 0, LAYOUT_FILL_X|LAYOUT_FILL_Y|LAYOUT_RIGHT, :padding => 0)

  req_tab = FXTabItem.new(tabBook, "Request", nil)
  frame = FXVerticalFrame.new(tabBook, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_RAISED)
  @request_viewer = Watobo::Gui::SimpleTextView.new(frame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN, :padding => 0)

  resp_tab = FXTabItem.new(tabBook, "Response", nil)
  frame = FXVerticalFrame.new(tabBook, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_RAISED)
  @response_viewer = Watobo::Gui::SimpleTextView.new(frame, :opts => LAYOUT_FILL_X|LAYOUT_FILL_Y|FRAME_SUNKEN, :padding => 0)

  
    Watobo::OTTCache.chats(@target_chat) do |chat|
      addRequest(chat)
    end
end

Instance Method Details

#addRequest(chat) ⇒ Object



309
310
311
# File 'lib/watobo/gui/csrf_token_dialog.rb', line 309

def addRequest(chat)
  @scriptTable.addChat(chat)
end

#getTokenScriptIdsObject



245
246
247
248
249
250
251
252
253
# File 'lib/watobo/gui/csrf_token_dialog.rb', line 245

def getTokenScriptIds()
  ids = []
  @scriptTable.numRows.times do |row|
    # puts row
    ids.push @scriptTable.getRowText(row)
  end
  return ids

end

#onTableClick(sender, sel, item) ⇒ Object



255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
# File 'lib/watobo/gui/csrf_token_dialog.rb', line 255

def onTableClick(sender, sel, item)
  begin

    # purge viewers
    @request_viewer.setText('')
    @response_viewer.setText('')
    row = item.row

    if row >= 0 then
      @scriptTable.selectRow(row, false)
      chatid = @scriptTable.getRowText(item.row).to_i
      # @logText.appendText("selected ID: (#{chatid})\n")
      if chatid >= 0
        chat = Watobo::Chats.get_by_id(chatid)
        showChat(chat) if chat
        @sel_row = row
        @rem_button.enable
      end
    end
  rescue => bang
    puts "!!!ERROR: onTableClick"
    puts bang
    puts "!!!"

  end
end

#removeRequest(sender, sel, item) ⇒ Object



282
283
284
285
286
287
288
289
# File 'lib/watobo/gui/csrf_token_dialog.rb', line 282

def removeRequest(sender, sel, item)
  if @sel_row >= 0 then
    @scriptTable.removeRows(@sel_row)
    @scriptTable.killSelection(false)
    @rem_button.disable
    @sel_row = -1
  end
end

#showChat(chat) ⇒ Object



238
239
240
241
242
243
# File 'lib/watobo/gui/csrf_token_dialog.rb', line 238

def showChat(chat)
  @request_viewer.setText(chat.request)

  @response_viewer.setText(chat.response)

end

#startSelectChatDialog(sender, sel, item) ⇒ Object



291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
# File 'lib/watobo/gui/csrf_token_dialog.rb', line 291

def startSelectChatDialog(sender, sel, item)
  begin
    dlg = Watobo::Gui::SelectChatDialog.new(self, "Select Login Chat")
    if dlg.execute != 0 then

      chats_selected = dlg.selection.value.split(",")

      chats_selected.each do |chatid|
        chat = Watobo::Chats.get_by_id(chatid.strip)
        addRequest(chat) if chat
      end
    end
  rescue => bang
    puts "!!!ERROR: could not open SelectChatDialog."
    puts bang
  end
end