├── .gitignore ├── AUTHORS.md ├── CONTRIBUTING.md ├── ChangeLog.md ├── LICENSE.md ├── README.md ├── TODO.md ├── VERSION ├── __init__.py ├── controllers ├── accounts.py ├── api.py ├── appadmin.py ├── cpe.py ├── default.py ├── evidence.py ├── exploitdb.py ├── exploits.py ├── hosts.py ├── hping.py ├── metasploit.py ├── nessus.py ├── netbios.py ├── nexpose.py ├── nmap.py ├── notes.py ├── os.py ├── report.py ├── services.py ├── shodanhq.py ├── snmp.py ├── stats.py ├── tasks.py ├── tooloutput.py └── vulns.py ├── cron └── crontab ├── doc ├── gathering_error_data.md ├── mindmaps │ ├── build-txt2mm.py │ ├── kvasir_models.mm │ ├── kvasir_models.txt │ └── static.txt └── terminal_launching.md ├── kvasir.yaml.sample ├── languages ├── es-es.py ├── fr-ca.py ├── fr-fr.py ├── hi-hi.py ├── hu-hu.py ├── hu.py ├── it-it.py ├── it.py ├── nb-no.py ├── pl-pl.py ├── pl.py ├── plural-en.py ├── pt-br.py ├── pt-pt.py ├── pt.py ├── ru-ru.py ├── sk-sk.py └── zh-tw.py ├── logging.conf ├── models ├── 0.py ├── 00_settings.py ├── 01_form_modal.py ├── buttons.py ├── db.py ├── db_01_static.py ├── db_02_kvasir.py ├── db_03_support.py ├── db_05_metasploit.py ├── menu.py └── scheduler.py ├── modules ├── MetasploitProAPI.py ├── NessusAPI │ ├── __init__.py │ ├── common.py │ └── utils.py ├── NexposeAPI.py ├── __init__.py ├── nxajax.py ├── skaldship │ ├── __init__.py │ ├── canvas.py │ ├── cpe.py │ ├── cvrf.py │ ├── exploits.py │ ├── general.py │ ├── hosts.py │ ├── hping.py │ ├── jtr.py │ ├── log.py │ ├── metasploit │ │ ├── __init__.py │ │ └── pro.py │ ├── nessus │ │ ├── __init__.py │ │ ├── hosts.py │ │ ├── ness6api.py │ │ ├── plugins.py │ │ ├── processor.py │ │ └── vulns.py │ ├── nexpose.py │ ├── nmap.py │ ├── passwords │ │ ├── __init__.py │ │ ├── hydra.py │ │ ├── medusa.py │ │ ├── metasploit.py │ │ └── utils.py │ ├── qualys.py │ ├── services.py │ ├── shodanhq.py │ ├── statistics.py │ ├── stylesheets │ │ └── nexpose.xsl │ └── valkyries │ │ ├── __init__.py │ │ ├── vncscreenshot.py │ │ ├── webimaging.js │ │ └── webimaging.py ├── xlsxwriter │ ├── __init__.py │ ├── app.py │ ├── chart.py │ ├── chart_area.py │ ├── chart_bar.py │ ├── chart_column.py │ ├── chart_line.py │ ├── chart_pie.py │ ├── chart_radar.py │ ├── chart_scatter.py │ ├── chart_stock.py │ ├── comments.py │ ├── contenttypes.py │ ├── core.py │ ├── drawing.py │ ├── format.py │ ├── packager.py │ ├── relationships.py │ ├── sharedstrings.py │ ├── styles.py │ ├── table.py │ ├── theme.py │ ├── utility.py │ ├── vml.py │ ├── workbook.py │ ├── worksheet.py │ └── xmlwriter.py └── zenmapCore_Kvasir │ ├── BasePaths.py │ ├── Diff.py │ ├── I18N.py │ ├── NSEDocParser.py │ ├── Name.py │ ├── NetworkInventory.py │ ├── NmapCommand.py │ ├── NmapOptions.py │ ├── NmapParser.py │ ├── Paths.py │ ├── README_Kvasir │ ├── RecentScans.py │ ├── ScriptArgsParser.py │ ├── ScriptMetadata.py │ ├── SearchResult.py │ ├── StringPool.py │ ├── TargetList.py │ ├── UmitConf.py │ ├── UmitConfigParser.py │ ├── UmitDB.py │ ├── UmitLogging.py │ ├── UmitOptionParser.py │ ├── Version.py │ └── __init__.py ├── private ├── PURGEALLDATA.py ├── db_csv.py ├── dedupe.py ├── gen_pwfile.py ├── import_nmap.py ├── kvasir_rc ├── terminal.scpt ├── timeout3 ├── update_evidence.py ├── upload_pwfile.py └── user.py ├── static ├── TableTools │ ├── css │ │ ├── TableTools.css │ │ └── TableTools_JUI.css │ ├── images │ │ ├── background.png │ │ ├── collection.png │ │ ├── collection_hover.png │ │ ├── copy.png │ │ ├── copy_hover.png │ │ ├── csv.png │ │ ├── csv_hover.png │ │ ├── pdf.png │ │ ├── pdf_hover.png │ │ ├── print.png │ │ ├── print_hover.png │ │ ├── xls.png │ │ └── xls_hover.png │ ├── js │ │ ├── TableTools.min.js │ │ └── ZeroClipboard.js │ └── swf │ │ ├── copy_csv_xls.swf │ │ └── copy_csv_xls_pdf.swf ├── css │ ├── ColVis.css │ ├── bootstrap-responsive.min.css │ ├── bootstrap.min.css │ ├── calendar.css │ ├── datatables.css │ ├── facebox.css │ ├── jquery.terminal.css │ ├── kvasir.css │ ├── tipsy.css │ ├── web2py.css │ ├── web2py_bootstrap.css │ └── web2py_bootstrap_nojs.css ├── etc │ ├── canvas_exploits.xml │ ├── kvasir.xsd │ └── nexpose_exploits.xml ├── fancybox │ ├── blank.gif │ ├── fancy_close.png │ ├── fancy_loading.png │ ├── fancy_nav_left.png │ ├── fancy_nav_right.png │ ├── fancy_shadow_e.png │ ├── fancy_shadow_n.png │ ├── fancy_shadow_ne.png │ ├── fancy_shadow_nw.png │ ├── fancy_shadow_s.png │ ├── fancy_shadow_se.png │ ├── fancy_shadow_sw.png │ ├── fancy_shadow_w.png │ ├── fancy_title_left.png │ ├── fancy_title_main.png │ ├── fancy_title_over.png │ ├── fancy_title_right.png │ ├── fancybox-x.png │ ├── fancybox-y.png │ ├── fancybox.png │ ├── jquery.easing-1.3.pack.js │ ├── jquery.fancybox-1.3.4.css │ ├── jquery.fancybox-1.3.4.pack.js │ └── jquery.mousewheel-3.0.4.pack.js ├── favicon.ico ├── images │ ├── Kvasir_portrait.png │ ├── canvas.png │ ├── datatables │ │ ├── back_disabled.jpg │ │ ├── back_enabled.jpg │ │ ├── forward_disabled.jpg │ │ ├── forward_enabled.jpg │ │ ├── sort_asc.png │ │ ├── sort_asc_disabled.png │ │ ├── sort_both.png │ │ ├── sort_desc.png │ │ └── sort_desc_disabled.png │ ├── details_close.png │ ├── details_open.png │ ├── exploitdb.ico │ ├── glyphicons-halflings-white.png │ ├── glyphicons-halflings.png │ ├── msf.gif │ ├── oreally │ │ ├── 1100.jpeg │ │ ├── 2.jpeg │ │ ├── 222di0.jpeg │ │ ├── 243837180_cb1889f76b.jpeg │ │ ├── 4wEDw.jpeg │ │ ├── 8UQko.jpeg │ │ ├── Ballmer-Peak.png │ │ ├── Electrohome.jpeg │ │ ├── SUDOMOKUN.jpeg │ │ ├── Swamp-Nerds.jpeg │ │ ├── When-Bipedal-Dogs-Attack.jpeg │ │ ├── backtrack.png │ │ ├── cisco-box-house.jpeg │ │ ├── ciscosystems-simpsons.png │ │ ├── ciscowaterkoeling.jpeg │ │ ├── codingdrunk.jpg │ │ ├── forth_on_the_atari.jpg │ │ ├── gates_in_safe_mode.png │ │ ├── gorilla-no-ds.jpg │ │ ├── hack-like-an-action-movie.jpeg │ │ ├── hacker-at-work.gif │ │ ├── hacker-repellant-large.jpeg │ │ ├── hacker_bomb.jpeg │ │ ├── hacking_for_dummies.jpeg │ │ ├── heman.png │ │ ├── http_413_she_said.jpg │ │ ├── looonix.png │ │ ├── no-idea-what-im-doing-dog.jpg │ │ ├── only-use-ie.jpg │ │ ├── powerglove.jpeg │ │ ├── pravetz82.jpeg │ │ ├── programmer-en-espanol.png │ │ ├── realistic-hacking.gif │ │ ├── sql_speed_camera.png │ │ ├── stacktrace-or-gtfo.jpeg │ │ ├── unix-bulgarianbar.jpeg │ │ ├── unplugged-ethernet.jpeg │ │ └── vikas-computers.jpg │ └── terminal.png ├── js │ ├── ColVis.js │ ├── bootbox.min.js │ ├── bootstrap.min.js │ ├── calendar.js │ ├── d3.min.js │ ├── dataTables.checkboxer.js │ ├── dataTables.kvasir_funcs.js │ ├── dataTables.paging.js │ ├── dd_belatedpng.js │ ├── highcharts.js │ ├── ipv4_calc.js │ ├── jquery-1.8.1.min.js │ ├── jquery.dataTables-1.9.2-min.js │ ├── jquery.form.js │ ├── jquery.sparkline.js │ ├── jquery.tagcloud-2.js │ ├── jquery.terminal-0.4.17.min.js │ ├── jquery.tipsy.js │ ├── jquery.treeview.js │ ├── kvasir.js │ ├── modernizr.custom.js │ ├── mousetrap.js │ ├── teredo_calc.js │ ├── web2py.js │ └── web2py_bootstrap.js ├── jstree │ ├── jstree.min.js │ └── themes │ │ └── default │ │ ├── d.gif │ │ ├── d.png │ │ ├── style.css │ │ └── throbber.gif ├── markitup │ ├── css │ │ └── markitup.css │ ├── images │ │ ├── handle.png │ │ ├── menu.png │ │ └── submenu.png │ ├── js │ │ ├── jquery.markitup.js │ │ └── markitup-sets.js │ └── sets │ │ ├── markdown │ │ ├── images │ │ │ ├── bold.png │ │ │ ├── code.png │ │ │ ├── h1.png │ │ │ ├── h2.png │ │ │ ├── h3.png │ │ │ ├── h4.png │ │ │ ├── h5.png │ │ │ ├── h6.png │ │ │ ├── italic.png │ │ │ ├── link.png │ │ │ ├── list-bullet.png │ │ │ ├── list-numeric.png │ │ │ ├── picture.png │ │ │ ├── preview.png │ │ │ └── quotes.png │ │ ├── set.js │ │ └── style.css │ │ ├── markmin │ │ ├── images │ │ │ ├── bold.png │ │ │ ├── code.png │ │ │ ├── h1.png │ │ │ ├── h2.png │ │ │ ├── h3.png │ │ │ ├── h4.png │ │ │ ├── h5.png │ │ │ ├── h6.png │ │ │ ├── italic.png │ │ │ ├── link.png │ │ │ ├── list-bullet.png │ │ │ ├── list-numeric.png │ │ │ ├── picture.png │ │ │ ├── preview.png │ │ │ └── quotes.png │ │ ├── set.js │ │ └── style.css │ │ └── rest │ │ ├── images │ │ ├── bold.png │ │ ├── code.png │ │ ├── h1.png │ │ ├── h2.png │ │ ├── h3.png │ │ ├── h4.png │ │ ├── h5.png │ │ ├── italic.png │ │ ├── link.png │ │ ├── list-bullet.png │ │ ├── list-numeric.png │ │ ├── picture.png │ │ ├── preview.png │ │ └── quotes.png │ │ ├── set.js │ │ └── style.css ├── select2 │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── release.sh │ ├── select2-bootstrap.css │ ├── select2-spinner.gif │ ├── select2.css │ ├── select2.jquery.json │ ├── select2.js │ ├── select2.min.js │ ├── select2.png │ ├── select2_locale_ar.js │ ├── select2_locale_bg.js │ ├── select2_locale_ca.js │ ├── select2_locale_cs.js │ ├── select2_locale_da.js │ ├── select2_locale_de.js │ ├── select2_locale_el.js │ ├── select2_locale_en.js.template │ ├── select2_locale_es.js │ ├── select2_locale_et.js │ ├── select2_locale_eu.js │ ├── select2_locale_fa.js │ ├── select2_locale_fi.js │ ├── select2_locale_fr.js │ ├── select2_locale_gl.js │ ├── select2_locale_he.js │ ├── select2_locale_hr.js │ ├── select2_locale_hu.js │ ├── select2_locale_id.js │ ├── select2_locale_is.js │ ├── select2_locale_it.js │ ├── select2_locale_ja.js │ ├── select2_locale_ko.js │ ├── select2_locale_lt.js │ ├── select2_locale_lv.js │ ├── select2_locale_mk.js │ ├── select2_locale_ms.js │ ├── select2_locale_nl.js │ ├── select2_locale_no.js │ ├── select2_locale_pl.js │ ├── select2_locale_pt-BR.js │ ├── select2_locale_pt-PT.js │ ├── select2_locale_ro.js │ ├── select2_locale_ru.js │ ├── select2_locale_sk.js │ ├── select2_locale_sv.js │ ├── select2_locale_th.js │ ├── select2_locale_tr.js │ ├── select2_locale_ua.js │ ├── select2_locale_vi.js │ ├── select2_locale_zh-CN.js │ ├── select2_locale_zh-TW.js │ └── select2x2.png ├── syntaxhighlighter │ ├── LGPL-LICENSE │ ├── MIT-LICENSE │ ├── compass │ │ ├── _theme_template.scss │ │ ├── config.rb │ │ ├── shCore.scss │ │ ├── shCoreDefault.scss │ │ ├── shCoreDjango.scss │ │ ├── shCoreEclipse.scss │ │ ├── shCoreEmacs.scss │ │ ├── shCoreFadeToGrey.scss │ │ ├── shCoreMDUltra.scss │ │ ├── shCoreMidnight.scss │ │ ├── shCoreRDark.scss │ │ ├── shThemeDefault.scss │ │ ├── shThemeDjango.scss │ │ ├── shThemeEclipse.scss │ │ ├── shThemeEmacs.scss │ │ ├── shThemeFadeToGrey.scss │ │ ├── shThemeMDUltra.scss │ │ ├── shThemeMidnight.scss │ │ └── shThemeRDark.scss │ ├── scripts │ │ ├── shAutoloader.js │ │ ├── shBrushAS3.js │ │ ├── shBrushAppleScript.js │ │ ├── shBrushBash.js │ │ ├── shBrushCSharp.js │ │ ├── shBrushColdFusion.js │ │ ├── shBrushCpp.js │ │ ├── shBrushCss.js │ │ ├── shBrushDelphi.js │ │ ├── shBrushDiff.js │ │ ├── shBrushErlang.js │ │ ├── shBrushGroovy.js │ │ ├── shBrushJScript.js │ │ ├── shBrushJava.js │ │ ├── shBrushJavaFX.js │ │ ├── shBrushPerl.js │ │ ├── shBrushPhp.js │ │ ├── shBrushPlain.js │ │ ├── shBrushPowerShell.js │ │ ├── shBrushPython.js │ │ ├── shBrushRuby.js │ │ ├── shBrushSass.js │ │ ├── shBrushScala.js │ │ ├── shBrushSql.js │ │ ├── shBrushVb.js │ │ ├── shBrushXml.js │ │ ├── shCore.js │ │ └── shLegacy.js │ └── styles │ │ ├── shCore.css │ │ ├── shCoreDefault.css │ │ ├── shCoreDjango.css │ │ ├── shCoreEclipse.css │ │ ├── shCoreEmacs.css │ │ ├── shCoreFadeToGrey.css │ │ ├── shCoreMDUltra.css │ │ ├── shCoreMidnight.css │ │ ├── shCoreRDark.css │ │ ├── shThemeDefault.css │ │ ├── shThemeDjango.css │ │ ├── shThemeEclipse.css │ │ ├── shThemeEmacs.css │ │ ├── shThemeFadeToGrey.css │ │ ├── shThemeMDUltra.css │ │ ├── shThemeMidnight.css │ │ └── shThemeRDark.css ├── treeview │ ├── images │ │ ├── ajax-loader.gif │ │ ├── file.gif │ │ ├── folder-closed.gif │ │ ├── folder.gif │ │ ├── minus.gif │ │ ├── plus.gif │ │ ├── treeview-black-line.gif │ │ ├── treeview-black.gif │ │ ├── treeview-default-line.gif │ │ ├── treeview-default.gif │ │ ├── treeview-famfamfam-line.gif │ │ ├── treeview-famfamfam.gif │ │ ├── treeview-gray-line.gif │ │ ├── treeview-gray.gif │ │ ├── treeview-red-line.gif │ │ └── treeview-red.gif │ └── jquery.treeview.css └── videos │ └── loading.m4v └── views ├── __init__.py ├── accounts ├── add.html ├── add.load ├── by_host.html ├── by_host.load ├── by_username.html ├── check_john_pot.html ├── edit.html ├── import_file.html ├── import_file.load ├── import_mass_password.html ├── list.html ├── paste.load ├── read.html └── update_hashes_by_file.html ├── appadmin.html ├── cpe ├── apps_add.html ├── apps_edit.html ├── apps_list.html ├── hardware_add.html ├── hardware_edit.html ├── hardware_list.html ├── import_cpe_xml.html ├── os_add.html ├── os_edit.html ├── os_list.html └── purge.html ├── default ├── data_dir.html ├── database_backup.html ├── database_restore.html ├── error.html ├── index.html ├── ip_calc.html ├── purge_data.html ├── redirect.html ├── update_dynamic_fields.html ├── user.csv ├── user.html └── wiki.html ├── evidence ├── add.html ├── add.load ├── edit.html ├── list.html └── list.load ├── exploitdb ├── detail.html ├── git_pull.html ├── index.html └── update_db.html ├── exploits ├── add.html ├── import_canvas_xml.html ├── import_nexpose_xml.html └── list.html ├── filter_hosts.html ├── generic.html ├── generic.json ├── generic.load ├── generic.pdf ├── generic.rss ├── generic.xml ├── hosts ├── add.html ├── csv_hostupdate.html ├── detail.html ├── edit.html ├── edit.load ├── filter.html ├── filter.load ├── list.html ├── mass_asset_group.load └── mass_os_refs.load ├── hotkeys.html ├── hping └── import_scan.html ├── kvasir.functions.html ├── layout.html ├── loading.html ├── markitup_markmin.html ├── metasploit.html ├── metasploit ├── api_settings.html ├── bruteforce.html ├── exploit.html ├── import_pwdump.html ├── import_report_xml.html ├── import_screenshots.html ├── send_accounts.html ├── send_scanxml.html └── task_list.html ├── nessus └── import_scan.html ├── netbios ├── add.html ├── by_host.load ├── domain_detail.html ├── edit.html └── list.html ├── nexpose ├── import_vulnid.html ├── import_xml_scan.html ├── list_scantemplates.html ├── scan_template.html └── vuln_update.html ├── nmap ├── import_xml_scan.html └── nmap_scan.html ├── notes ├── add.html ├── edit.html ├── list.html └── summary_by_host.load ├── os ├── add.html ├── edit.html ├── list.html ├── refs_add.html ├── refs_add.load ├── refs_by_host.html ├── refs_by_host.load ├── refs_edit.html └── refs_list.html ├── popup.html ├── report ├── customer_xml.xml ├── graphs.html └── spreadsheet.html ├── services ├── add.html ├── add.load ├── apps_add.html ├── apps_edit.html ├── apps_list.html ├── by_host.html ├── by_host.load ├── edit.html ├── hosts_with_port.csv ├── info_add.html ├── info_by_svcid.html ├── info_edit.html ├── info_list.html ├── list.html └── read.html ├── shodanhq └── import_report.html ├── snmp ├── add.html ├── by_host.html ├── by_host.load ├── edit.html └── list.html ├── stats ├── os.html ├── passwords.html ├── services.html ├── vulncircles.html ├── vulncloud.html └── vulnlist.html ├── tasks ├── index.html └── status.html ├── terminal.html ├── tooloutput ├── add.html ├── add.load ├── edit.html ├── list.html ├── list.load └── view.html ├── vulns ├── aa_by_host.load ├── edit.load ├── service_vulns_add.html ├── service_vulns_add.load ├── service_vulns_edit.html ├── service_vulns_list.html ├── vuln_references_add.html ├── vuln_references_edit.html ├── vuln_references_list.html ├── vuln_refs.html ├── vuln_refs_add.html ├── vuln_refs_edit.html ├── vulndata_add.html ├── vulndata_by_host.html ├── vulndata_by_host.load ├── vulndata_edit.html ├── vulndata_list.html └── vulninfo_by_vulnid.html └── web2py_ajax.html /.gitignore: -------------------------------------------------------------------------------- 1 | *.py[cod] 2 | 3 | # C extensions 4 | *.so 5 | 6 | # Packages 7 | *.egg 8 | *.egg-info 9 | dist 10 | build 11 | eggs 12 | parts 13 | bin 14 | var 15 | sdist 16 | develop-eggs 17 | .installed.cfg 18 | lib 19 | lib64 20 | 21 | # Installer logs 22 | pip-log.txt 23 | 24 | # Unit test / coverage reports 25 | .coverage 26 | .tox 27 | nosetests.xml 28 | 29 | # Translations 30 | *.mo 31 | 32 | # Mr Developer 33 | .mr.developer.cfg 34 | .project 35 | .pydevproject 36 | 37 | # web2py crud 38 | .*.swp 39 | *.log 40 | *.log.* 41 | .DS_Store 42 | data/ 43 | sessions/ 44 | errors/ 45 | uploads/ 46 | databases/*.table 47 | databases/sql.log 48 | databases/*.sqlite* 49 | cache/ 50 | .idea/ 51 | 52 | # don't want your config in git 53 | kvasir.yaml 54 | models/99_local.py 55 | -------------------------------------------------------------------------------- /AUTHORS.md: -------------------------------------------------------------------------------- 1 | AUTHORS 2 | ======= 3 | 4 | Kvasir started in 2010 by the Security Posture Assessment (SPA) team of 5 | Cisco Systems' Advanced Services group. It is currently maintained by a 6 | group of individuals. 7 | 8 | The PRIMARY AUTHORS are: 9 | 10 | * Kurt Grutzmacher (@grutz) 11 | 12 | Additional contributors: 13 | 14 | * Lincoln Nguyen (@lincolnn) 15 | * Vikas Singhal (@vikasprogrammer) 16 | * Karn Ganeshen (@juushya) 17 | * Jan Rude (@whoot) 18 | * @andurin 19 | * @kimdane 20 | * @eddiezab 21 | * Samuel Bonilla (@pyner) 22 | * Markus Piéton (@marpie) 23 | * @001001 24 | * @hybriz 25 | 26 | The full list of code contributors and their contributions can be viewed at 27 | https://github.com/KvasirSecurity/Kvasir/graphs/contributors 28 | 29 | Thanks to the tireless members of the SPA team for their patience, use and 30 | continued support. Thanks to the management team of Cisco Systems Advanced 31 | Services who supported the development and helped push for open sourcing 32 | this code. 33 | 34 | THANK YOU for using and contributing to the continued development of Kvasir! 35 | 36 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Kvasir 2 | 3 | ## Code 4 | 5 | Utilize Github's (pull requests)[https://github.com/KvasirSecurity/Kvasir/pulls] to 6 | develop and commit code. Github promotes easily collaboration so you don't need to 7 | install a full development environment in order to contribute, you can do most tasks 8 | on-line. 9 | 10 | ## Bugs / Issues / Features 11 | 12 | For quick-and-easy bugs please submit a (pull request)[https://github.com/KvasirSecurity/Kvasir/pulls] 13 | through the Github interface with the fix. It will be reviewed and commented/accepted. 14 | 15 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 1.0.0 2 | -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/__init__.py -------------------------------------------------------------------------------- /cron/crontab: -------------------------------------------------------------------------------- 1 | #crontab 2 | -------------------------------------------------------------------------------- /doc/mindmaps/build-txt2mm.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import re 4 | import fileinput 5 | 6 | #LEADER = " " 7 | LEADER = "\t" 8 | 9 | def matchit(match): 10 | if match is None: 11 | return None 12 | return match.group('d') 13 | 14 | table_re = re.compile("define_table\('(?P\w+)'") 15 | field_re = re.compile("Field\('(?P\w+)'") 16 | field_dbref = re.compile("db\.(?P\w+),") 17 | 18 | print "Kvasir Models" 19 | 20 | for line in fileinput.input(): 21 | table = matchit(table_re.search(line)) 22 | if table: 23 | print LEADER, table 24 | 25 | field = matchit(field_re.search(line)) 26 | #if field == "id": 27 | # print "%s%s_%s" % (LEADER, field, table) 28 | if field: 29 | print LEADER, LEADER, field 30 | 31 | #field = matchit(field_re.search(line)) 32 | #if field is not None: 33 | # print "%sid_%s" % (LEADER, field) 34 | 35 | -------------------------------------------------------------------------------- /languages/plural-en.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | { 4 | # "singular form (0)": ["first plural form (1)", "second plural form (2)", ...], 5 | 'hit': ['hits'], 6 | 'hour': ['hours'], 7 | 'minute': ['minutes'], 8 | 'second': ['seconds'], 9 | } 10 | -------------------------------------------------------------------------------- /models/0.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | if 0: 4 | import db 5 | 6 | from gluon import sanitizer 7 | from gluon.custom_import import track_changes; track_changes(True) 8 | 9 | ########### 10 | # GLOBALS! 11 | 12 | HTTP_PORTS = [ 13 | "80", 14 | "88", 15 | "8080", 16 | "8081", 17 | "9091", 18 | "8888", 19 | "5800", 20 | "5801", 21 | "5802", 22 | "2301", 23 | ] 24 | 25 | HTTPS_PORTS = [ 26 | "443", 27 | "8443", 28 | "2381", 29 | ] 30 | 31 | ########### 32 | # Widgets! 33 | 34 | def autocomplete_bootstrap(f,v): 35 | """ 36 | Autocomplete widget using boostrap typeahead 37 | """ 38 | import uuid 39 | d_id = "autocomplete-bs-" + str(uuid.uuid4())[:8] 40 | wrapper = DIV(_id=d_id) 41 | inp_id = "autocomplete-input-bs-" + str(uuid.uuid4())[:8] 42 | rows = f._db(f._table['id']>0).select(f,distinct=True) 43 | #itms = rows.as_list() 44 | itms = [XML(t.values()[0], sanitize=True).xml() for t in rows] 45 | #inp = SQLFORM.widgets.string.widget(f, v, _id=inp_id, **{'_data-provide': 'typeahead', '_data-source': itms, '_data-items': 8}) 46 | inp = SQLFORM.widgets.string.widget(f, v, _id=inp_id, _autocomplete="off", **{"_data-provide":"typeahead"}) 47 | itms_var = "autocomplete_bs_data_" + str(uuid.uuid4())[:8] 48 | scr = SCRIPT('$(document).ready(function() {var %s=%s; jQuery("#%s").typeahead({source: %s});});' % (itms_var, str(itms), inp_id, itms_var)) 49 | wrapper.append(inp) 50 | wrapper.append(scr) 51 | return wrapper 52 | -------------------------------------------------------------------------------- /models/buttons.py: -------------------------------------------------------------------------------- 1 | # Template helpers 2 | 3 | import os 4 | 5 | def button(href, label): 6 | return A(SPAN(label),_class='button',_href=href) 7 | 8 | def sp_button(href, label): 9 | return A(SPAN(label),_class='button special',_href=href) 10 | 11 | def helpicon(): 12 | return IMG(_src=URL(request.application, 'static', 'images/help.png'), _alt='help') 13 | 14 | def searchbox(elementid): 15 | return TAG[''](LABEL(IMG(_src=URL(request.application, 'static', 'images/search.png'), _alt=T('filter')), _class='icon', _for=elementid), ' ', INPUT(_id=elementid, _type='text', _size=12)) 16 | -------------------------------------------------------------------------------- /models/db_03_support.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | ##--------------------------------------# 4 | ## Kvasir Support Table Definitions 5 | ## 6 | ## (c) 2010-2014 Cisco Systems, Inc. 7 | ## (c) 2015 Kurt Grutzmacher 8 | ## 9 | ## Author: Kurt Grutzmacher 10 | ##--------------------------------------# 11 | 12 | ######################################### 13 | ## Event log 14 | db.define_table('t_event_log', 15 | Field('id', 'id'), 16 | Field('f_text', 'string', label=T('Message')), 17 | Field('f_seen', 'boolean', default=False, label=T('Seen')), 18 | Field('f_ack', 'boolean', default=False, label=T('Acknowledged')), 19 | auth.signature, 20 | format='%(f_text)s', 21 | fake_migrate=settings.fake_migrate, migrate=settings.migrate) 22 | 23 | ######################################### 24 | ## +5 bag of holding things 25 | db.define_table('t_errata', 26 | Field('id', 'id'), 27 | Field('f_key', 'string', label=T('Key'), requires=IS_NOT_EMPTY()), 28 | Field('f_value', 'string', label=T('Value'), requires=IS_NOT_EMPTY()), 29 | auth.signature, 30 | format='%(f_value)s', 31 | fake_migrate=settings.fake_migrate, migrate=settings.migrate) 32 | -------------------------------------------------------------------------------- /modules/NessusAPI/__init__.py: -------------------------------------------------------------------------------- 1 | """Nessus""" 2 | from .common import NessusConnection 3 | from .utils import PolicyParameters 4 | 5 | __version__ = "0.0.1" 6 | __all__ = [NessusConnection, PolicyParameters] 7 | -------------------------------------------------------------------------------- /modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/modules/__init__.py -------------------------------------------------------------------------------- /modules/skaldship/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | __version__ = "1.0" 4 | 5 | """ 6 | ##--------------------------------------# 7 | ## Kvasir Skaldship Module Library 8 | ## 9 | ## (c) 2010-2014 Cisco Systems, Inc. 10 | ## 11 | ## Author: Kurt Grutzmacher 12 | ##--------------------------------------# 13 | """ 14 | 15 | __all__ = ["valkyries", "passwords", "metasploit"] 16 | -------------------------------------------------------------------------------- /modules/skaldship/cvrf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | __version__ = "1.0" 4 | 5 | """ 6 | ##--------------------------------------# 7 | ## Kvasir 8 | ## 9 | ## (c) 2010-2014 Cisco Systems, Inc. 10 | ## (c) 2015 Kurt Grutzmacher 11 | ## 12 | ## Common Vulnerability Reference File module for Kvasir 13 | ## 14 | ## Author: Kurt Grutzmacher 15 | ##--------------------------------------# 16 | """ 17 | 18 | from gluon import current 19 | import gluon.contrib.simplejson 20 | import sys, os, time, re, HTMLParser 21 | from StringIO import StringIO 22 | import logging 23 | logger = logging.getLogger("web2py.app.kvasir") 24 | 25 | ##------------------------------------------------------------------------ 26 | 27 | process_xml(filename=None): 28 | """ 29 | Processes a single CVRF XML file into t_vulndata structure. 30 | CVRF info can be found at http://www.icasi.org/cvrf 31 | """ 32 | 33 | try: 34 | from lxml import etree 35 | except ImportError: 36 | try: 37 | import xml.etree.cElementTree as etree 38 | except ImportError: 39 | try: 40 | import xml.etree.ElementTree as etree 41 | except: 42 | raise Exception("Unable to find valid ElementTree module.") 43 | 44 | 45 | logger.info("Processing CVRF XML file [%s]" % (filename)) 46 | 47 | db = current.globalenv['db'] 48 | cache = current.globalenv['cache'] 49 | 50 | -------------------------------------------------------------------------------- /modules/skaldship/log.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | __version__ = "1.0" 4 | 5 | """ 6 | ##--------------------------------------# 7 | ## Kvasir 8 | ## 9 | ## (c) 2010-2014 Cisco Systems, Inc. 10 | ## (c) 2015 Kurt Grutzmacher 11 | ## 12 | ## Logging / print functions for Kvasir 13 | ## 14 | ## Author: Kurt Grutzmacher 15 | ##--------------------------------------# 16 | """ 17 | 18 | import inspect 19 | import logging 20 | logger = logging.getLogger("web2py.app.kvasir") 21 | 22 | 23 | def log(message, level=logging.INFO, *args, **kwargs): 24 | """ 25 | If we're in a scheduler task then print the message out to stdout 26 | so it will be picked up. Otherwise use the current logger module 27 | and send with the specified level 28 | """ 29 | try: 30 | from gluon import current 31 | if 'W2P_TASK' in current.globalenv: 32 | print(message) 33 | except ImportError: 34 | pass 35 | 36 | # find the calling function 37 | try: 38 | callfunc = inspect.stack()[1][3] 39 | except: 40 | callfunc = 'unknown' 41 | 42 | try: 43 | callmod = inspect.getmodule(inspect.stack()[1]).__name__ 44 | except: 45 | callmod = 'unknown' 46 | 47 | msg = logging.makeLogRecord({ 48 | 'name': logger.name, 49 | 'msg': message, 50 | 'levelno': level, 51 | 'levelname': logging.getLevelName(level), 52 | 'funcName': callfunc, 53 | 'module': callmod, 54 | }) 55 | 56 | logger.handle(msg) 57 | -------------------------------------------------------------------------------- /modules/skaldship/metasploit/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | __version__ = "1.0" 4 | 5 | """ 6 | ##--------------------------------------# 7 | ## Kvasir Skaldship Metasploit Module Library 8 | ## 9 | ## (c) 2010-2014 Cisco Systems, Inc. 10 | ## 11 | ## Author: Kurt Grutzmacher 12 | ##--------------------------------------# 13 | """ 14 | 15 | __all__ = ["msf_get_config", "pro"] 16 | 17 | from gluon import current 18 | 19 | 20 | ##------------------------------------------------------------------------- 21 | def msf_get_config(session=None): 22 | """ 23 | Returns a dict of metasploit configuration settings based on yaml or session 24 | """ 25 | 26 | msf_config = current.globalenv['settings']['kvasir_config'].get('metasploit') or {} 27 | 28 | config = { 29 | 'key': session.get('msf_key', msf_config.get('api_key')), 30 | 'url': session.get('msf_url', msf_config.get('url', 'https://localhost:3790')), 31 | 'msfrpcd': (session.get('msf_rpcd'), msf_config.get('msfrpcd', 'ssl://msf:msf@localhost:55553/')), 32 | 'ws_num': session.get('msf_workspace_num', 1), 'workspace': session.get('msf_workspace', 'default'), 33 | 'user': session.get('msf_user', None) 34 | } 35 | 36 | return config 37 | -------------------------------------------------------------------------------- /modules/skaldship/nessus/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | __version__ = "1.0" 4 | 5 | """ 6 | ##--------------------------------------# 7 | ## Kvasir 8 | ## 9 | ## (c) 2010-2014 Cisco Systems, Inc. 10 | ## (c) 2015 Kurt Grutzmacher 11 | ## 12 | ## Skaldship Nessus Module Library 13 | ## 14 | ## Author: Kurt Grutzmacher 15 | ##--------------------------------------# 16 | """ 17 | 18 | __all__ = ["hosts", "vulns", "plugins"] 19 | 20 | from gluon import current 21 | 22 | 23 | ##------------------------------------------------------------------------- 24 | def nessus_get_config(): 25 | """ 26 | Returns a dict of Nessus configuration settings based on yaml 27 | """ 28 | 29 | nessus_config = current.globalenv['settings']['kvasir_config'].get('nessus') or {} 30 | config = {} 31 | config['ignored_plugins'] = nessus_config.get('ignored_plugins', [19506, 11219, 34277]) 32 | config['servers'] = {} 33 | for server in nessus_config.get('servers'): 34 | for k,v in server.iteritems(): 35 | config['servers'][k] = { 36 | 'url': v.get('url', 'http://localhost:8834/'), 37 | 'user': v.get('user'), 38 | 'password': v.get('password'), 39 | 'access_key': v.get('access_key'), 40 | 'secret_key': v.get('secret_key'), 41 | 'verify_ssl': v.get('verify_ssl'), 42 | 'proxies': v.get('proxies'), 43 | 'version': v.get('version', 6) 44 | } 45 | 46 | return config 47 | 48 | -------------------------------------------------------------------------------- /modules/skaldship/nessus/plugins.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | __version__ = "1.0" 4 | 5 | """ 6 | ##--------------------------------------# 7 | ## Kvasir 8 | ## 9 | ## (c) 2010-2014 Cisco Systems, Inc. 10 | ## (c) 2015 Kurt Grutzmacher 11 | ## 12 | ## Nessus Plugin parser for Kvasir 13 | ## 14 | ## Author: Kurt Grutzmacher 15 | ##--------------------------------------# 16 | """ 17 | 18 | import re 19 | 20 | 21 | ##------------------------------------------------------------------------- 22 | class NessusPlugins(): 23 | """ 24 | Class for Nessus Plugin parsing 25 | """ 26 | 27 | def __init__(self): 28 | """ 29 | Nothing here. 30 | """ 31 | pass 32 | 33 | def plugin_10264(self, plugin_output): 34 | for snmp in re.findall(' - (.*)', plugin_output): 35 | db.t_snmp.update_or_insert(f_hosts_id=host_id, f_community=snmp) 36 | db.commit() 37 | return 38 | 39 | 40 | ##------------------------------------------------------------------------- 41 | def main(): 42 | pass 43 | 44 | if __name__ == '__main__': 45 | main() 46 | -------------------------------------------------------------------------------- /modules/skaldship/passwords/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | __version__ = "1.0" 4 | 5 | """ 6 | ##--------------------------------------# 7 | ## Kvasir Skaldship Password Library 8 | ## 9 | ## (c) 2010-2014 Cisco Systems, Inc. 10 | ## 11 | ## Author: Kurt Grutzmacher 12 | ##--------------------------------------# 13 | """ 14 | 15 | __all__ = ["utils", "hydra", "medusa", "metasploit"] 16 | -------------------------------------------------------------------------------- /modules/skaldship/valkyries/__init__.py: -------------------------------------------------------------------------------- 1 | # encoding: utf-8 2 | 3 | __version__ = "1.0" 4 | 5 | """ 6 | ##-----------------------------------------------# 7 | ## Kvasir Skaldship Valkyrie Module Library 8 | ## 9 | ## Valkyries are enumeration/attack routines 10 | ## 11 | ## (c) 2010-2014 Cisco Systems, Inc. 12 | ## (c) 2015 Kurt Grutzmacher 13 | ## 14 | ## Author: Kurt Grutzmacher 15 | ##-----------------------------------------------# 16 | """ 17 | 18 | -------------------------------------------------------------------------------- /modules/skaldship/valkyries/webimaging.js: -------------------------------------------------------------------------------- 1 | /* Capture a screenshot of a URL and save it to a file using phantomjs 2 | * 3 | * (c) 2010-2014 Cisco Systems, Inc. 4 | * (c) 2015 Kurt Grutzmacher 5 | */ 6 | 7 | var page = require('webpage').create(), 8 | system = require('system'), 9 | url, outputfile; 10 | 11 | if (system.args.length <= 2) { 12 | console.log("Usage: webimaging.js "); 13 | phantom.exit(); 14 | } 15 | 16 | url = system.args[1]; 17 | outputfile = system.args[2]; 18 | useragent = system.args[3]; 19 | 20 | if (!useragent) { 21 | useragent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) Kvasir' 22 | } 23 | 24 | page.settings.userAgent = useragent; 25 | page.viewportSize = { width: 1024, height: 768 }; 26 | page.clipRect = { top: 0, left: 0, width: 1024, height: 768 }; 27 | page.timeout = 200; 28 | page.open(url, function () { 29 | page.render(outputfile); 30 | phantom.exit(); 31 | }); 32 | -------------------------------------------------------------------------------- /modules/xlsxwriter/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/modules/xlsxwriter/__init__.py -------------------------------------------------------------------------------- /modules/zenmapCore_Kvasir/README_Kvasir: -------------------------------------------------------------------------------- 1 | This is an import of the zenmapCore library distributed with nmap. It has been 2 | modified so the libraries could be loaded into a web2py application. 3 | 4 | -------------------------------------------------------------------------------- /modules/zenmapCore_Kvasir/Version.py: -------------------------------------------------------------------------------- 1 | VERSION = "6.41SVN" 2 | -------------------------------------------------------------------------------- /private/kvasir_rc: -------------------------------------------------------------------------------- 1 | # 2 | # zshrc functions to automatically create and start web2py and Kvasir 3 | # change variables to suit your own locations 4 | # 5 | # if using web2py.app 6 | # http://www.web2py.com/examples/static/web2py_osx.zip 7 | # 8 | export WEB2PY_HOME="/Applications/web2py.app/Contents/Resources" 9 | alias web2py="python /Applications/web2py.app/Contents/Resources/web2py.py" 10 | 11 | # 12 | # if using Postgres.app 13 | # http://postgresapp.com/ 14 | # 15 | PATH=/Applications/Postgres.app/Contents/MacOS/bin:$PATH 16 | 17 | # 18 | # create new kvasir instance 19 | # eg. kvnew foowidgets 20 | # 21 | function kvnew () { 22 | # create and install the customer directory 23 | CUSTOMER=$1 24 | mkdir /opt/data/$CUSTOMER 25 | KV_HOME=/opt/data/$CUSTOMER/kvasir 26 | 27 | git clone https://github.com/KvasirSecurity/Kvasir /opt/data/$1/kvasir 28 | cp -R $HOME/tools/kvasir-dev $KV_HOME 29 | 30 | # seems like this directory should already exist. bug? 31 | mkdir $KV_HOME/databases 32 | 33 | ln -s $KV_HOME $WEB2PY_HOME/applications/$CUSTOMER 34 | 35 | # database setup and config 36 | createdb $CUSTOMER 37 | mv $KV_HOME/models/db.py.sample $KV_HOME/models/db.py 38 | sed -i ".sample" "s/settings.database_uri = .*/settings.database_uri = 'postgres:\/\/$USER@localhost:5432\/$1'/g" $KV_HOME/models/db.py 39 | 40 | export KV_HOME 41 | } 42 | 43 | # 44 | # start kvasir instance 45 | # eg. 'kvstart foowidgets' 46 | # 47 | function kvstart () { 48 | web2py -a password -X -K $1 49 | } 50 | 51 | -------------------------------------------------------------------------------- /private/terminal.scpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/private/terminal.scpt -------------------------------------------------------------------------------- /static/TableTools/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/background.png -------------------------------------------------------------------------------- /static/TableTools/images/collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/collection.png -------------------------------------------------------------------------------- /static/TableTools/images/collection_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/collection_hover.png -------------------------------------------------------------------------------- /static/TableTools/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/copy.png -------------------------------------------------------------------------------- /static/TableTools/images/copy_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/copy_hover.png -------------------------------------------------------------------------------- /static/TableTools/images/csv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/csv.png -------------------------------------------------------------------------------- /static/TableTools/images/csv_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/csv_hover.png -------------------------------------------------------------------------------- /static/TableTools/images/pdf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/pdf.png -------------------------------------------------------------------------------- /static/TableTools/images/pdf_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/pdf_hover.png -------------------------------------------------------------------------------- /static/TableTools/images/print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/print.png -------------------------------------------------------------------------------- /static/TableTools/images/print_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/print_hover.png -------------------------------------------------------------------------------- /static/TableTools/images/xls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/xls.png -------------------------------------------------------------------------------- /static/TableTools/images/xls_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/images/xls_hover.png -------------------------------------------------------------------------------- /static/TableTools/swf/copy_csv_xls.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/swf/copy_csv_xls.swf -------------------------------------------------------------------------------- /static/TableTools/swf/copy_csv_xls_pdf.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/TableTools/swf/copy_csv_xls_pdf.swf -------------------------------------------------------------------------------- /static/css/ColVis.css: -------------------------------------------------------------------------------- 1 | 2 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 | * ColVis styles 4 | */ 5 | .ColVis { 6 | float: right; 7 | margin-bottom: 1em; 8 | } 9 | 10 | .ColVis_Button { 11 | position: relative; 12 | float: left; 13 | margin-right: 3px; 14 | padding: 3px 5px; 15 | height: 30px; 16 | background-color: #fff; 17 | border: 1px solid #d0d0d0; 18 | cursor: pointer; 19 | *cursor: hand; 20 | } 21 | 22 | button.ColVis_Button::-moz-focus-inner { 23 | border: none !important; 24 | padding: 0; 25 | } 26 | 27 | .ColVis_text_hover { 28 | border: 1px solid #999; 29 | background-color: #f0f0f0; 30 | } 31 | 32 | div.ColVis_collectionBackground { 33 | background-color: black; 34 | z-index: 1100; 35 | } 36 | 37 | div.ColVis_collection { 38 | position: relative; 39 | width: 150px; 40 | background-color: #f3f3f3; 41 | padding: 3px; 42 | border: 1px solid #ccc; 43 | z-index: 1102; 44 | } 45 | 46 | div.ColVis_collection button.ColVis_Button { 47 | background-color: white; 48 | width: 100%; 49 | float: none; 50 | margin-bottom: 2px; 51 | } 52 | 53 | div.ColVis_catcher { 54 | position: absolute; 55 | z-index: 1101; 56 | } 57 | 58 | .disabled { 59 | color: #999; 60 | } 61 | 62 | 63 | 64 | button.ColVis_Button { 65 | text-align: left; 66 | } 67 | 68 | div.ColVis_collection button.ColVis_Button:hover { 69 | border: 1px solid #999; 70 | background-color: #f0f0f0; 71 | } 72 | 73 | span.ColVis_radio { 74 | display: inline-block; 75 | width: 20px; 76 | } 77 | -------------------------------------------------------------------------------- /static/css/facebox.css: -------------------------------------------------------------------------------- 1 | #facebox { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | z-index: 100; 6 | text-align: left; 7 | } 8 | 9 | 10 | #facebox .popup{ 11 | position:relative; 12 | border:3px solid rgba(0,0,0,0); 13 | -webkit-border-radius:5px; 14 | -moz-border-radius:5px; 15 | border-radius:5px; 16 | -webkit-box-shadow:0 0 18px rgba(0,0,0,0.4); 17 | -moz-box-shadow:0 0 18px rgba(0,0,0,0.4); 18 | box-shadow:0 0 18px rgba(0,0,0,0.4); 19 | } 20 | 21 | #facebox .content { 22 | display:table; 23 | width: 600px; 24 | padding: 10px; 25 | background: #fff; 26 | -webkit-border-radius:4px; 27 | -moz-border-radius:4px; 28 | border-radius:4px; 29 | } 30 | 31 | #facebox .content > p:first-child{ 32 | margin-top:0; 33 | } 34 | #facebox .content > p:last-child{ 35 | margin-bottom:0; 36 | } 37 | 38 | #facebox .close{ 39 | position:absolute; 40 | top:5px; 41 | right:5px; 42 | padding:2px; 43 | background:#fff; 44 | } 45 | #facebox .close img{ 46 | opacity:0.3; 47 | } 48 | #facebox .close:hover img{ 49 | opacity:1.0; 50 | } 51 | 52 | #facebox .loading { 53 | text-align: center; 54 | } 55 | 56 | #facebox .image { 57 | text-align: center; 58 | } 59 | 60 | #facebox img { 61 | border: 0; 62 | margin: 0; 63 | } 64 | 65 | #facebox_overlay { 66 | position: fixed; 67 | top: 0px; 68 | left: 0px; 69 | height:100%; 70 | width:100%; 71 | } 72 | 73 | .facebox_hide { 74 | z-index:-100; 75 | } 76 | 77 | .facebox_overlayBG { 78 | background-color: #000; 79 | z-index: 99; 80 | } -------------------------------------------------------------------------------- /static/css/jquery.terminal.css: -------------------------------------------------------------------------------- 1 | .terminal .clipboard { 2 | position: absolute; 3 | bottom: 0; 4 | left: 0; 5 | opacity: 0.01; 6 | filter: alpha(opacity = 0.01); 7 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.01); 8 | width: 2px; 9 | } 10 | .cmd > .clipboard { 11 | position: fixed; 12 | } 13 | .terminal { 14 | padding: 10px; 15 | position: relative; 16 | overflow: hidden; 17 | } 18 | .cmd { 19 | padding: 0; 20 | margin: 0; 21 | height: 1.3em; 22 | } 23 | .terminal .terminal-output div { 24 | display: block; 25 | } 26 | .terminal, .terminal .terminal-output, .terminal .terminal-output div, 27 | .terminal .terminal-output div div, .cmd, .terminal .cmd span, .terminal .cmd div { 28 | font-family: monospace; 29 | color: #aaa; 30 | background-color: #000; 31 | font-size: 12px; 32 | } 33 | .terminal .cmd span { 34 | float: left; 35 | } 36 | .terminal .cmd span.inverted { 37 | background-color: #aaa; 38 | color: #000; 39 | } 40 | .terminal div::-moz-selection, .terminal span::-moz-selection { 41 | background-color: #aaa; 42 | color: #000; 43 | } 44 | .terminal div::selection, .terminal span::selection { 45 | background-color: #aaa; 46 | color: #000; 47 | } 48 | .terminal .terminal-output div.error, .terminal .terminal-output div.error div { 49 | color: red; 50 | } 51 | .tilda { 52 | position: fixed; 53 | top: 0; 54 | left: 0; 55 | width: 100%; 56 | z-index: 1100; 57 | } 58 | .clear { 59 | clear: both; 60 | } 61 | -------------------------------------------------------------------------------- /static/fancybox/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/blank.gif -------------------------------------------------------------------------------- /static/fancybox/fancy_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_close.png -------------------------------------------------------------------------------- /static/fancybox/fancy_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_loading.png -------------------------------------------------------------------------------- /static/fancybox/fancy_nav_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_nav_left.png -------------------------------------------------------------------------------- /static/fancybox/fancy_nav_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_nav_right.png -------------------------------------------------------------------------------- /static/fancybox/fancy_shadow_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_shadow_e.png -------------------------------------------------------------------------------- /static/fancybox/fancy_shadow_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_shadow_n.png -------------------------------------------------------------------------------- /static/fancybox/fancy_shadow_ne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_shadow_ne.png -------------------------------------------------------------------------------- /static/fancybox/fancy_shadow_nw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_shadow_nw.png -------------------------------------------------------------------------------- /static/fancybox/fancy_shadow_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_shadow_s.png -------------------------------------------------------------------------------- /static/fancybox/fancy_shadow_se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_shadow_se.png -------------------------------------------------------------------------------- /static/fancybox/fancy_shadow_sw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_shadow_sw.png -------------------------------------------------------------------------------- /static/fancybox/fancy_shadow_w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_shadow_w.png -------------------------------------------------------------------------------- /static/fancybox/fancy_title_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_title_left.png -------------------------------------------------------------------------------- /static/fancybox/fancy_title_main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_title_main.png -------------------------------------------------------------------------------- /static/fancybox/fancy_title_over.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_title_over.png -------------------------------------------------------------------------------- /static/fancybox/fancy_title_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancy_title_right.png -------------------------------------------------------------------------------- /static/fancybox/fancybox-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancybox-x.png -------------------------------------------------------------------------------- /static/fancybox/fancybox-y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancybox-y.png -------------------------------------------------------------------------------- /static/fancybox/fancybox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/fancybox/fancybox.png -------------------------------------------------------------------------------- /static/fancybox/jquery.mousewheel-3.0.4.pack.js: -------------------------------------------------------------------------------- 1 | /*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net) 2 | * Licensed under the MIT License (LICENSE.txt). 3 | * 4 | * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. 5 | * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. 6 | * Thanks to: Seamus Leahy for adding deltaX and deltaY 7 | * 8 | * Version: 3.0.4 9 | * 10 | * Requires: 1.2.2+ 11 | */ 12 | 13 | (function(d){function g(a){var b=a||window.event,i=[].slice.call(arguments,1),c=0,h=0,e=0;a=d.event.fix(b);a.type="mousewheel";if(a.wheelDelta)c=a.wheelDelta/120;if(a.detail)c=-a.detail/3;e=c;if(b.axis!==undefined&&b.axis===b.HORIZONTAL_AXIS){e=0;h=-1*c}if(b.wheelDeltaY!==undefined)e=b.wheelDeltaY/120;if(b.wheelDeltaX!==undefined)h=-1*b.wheelDeltaX/120;i.unshift(a,c,h,e);return d.event.handle.apply(this,i)}var f=["DOMMouseScroll","mousewheel"];d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a= 14 | f.length;a;)this.addEventListener(f[--a],g,false);else this.onmousewheel=g},teardown:function(){if(this.removeEventListener)for(var a=f.length;a;)this.removeEventListener(f[--a],g,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/favicon.ico -------------------------------------------------------------------------------- /static/images/Kvasir_portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/Kvasir_portrait.png -------------------------------------------------------------------------------- /static/images/canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/canvas.png -------------------------------------------------------------------------------- /static/images/datatables/back_disabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/back_disabled.jpg -------------------------------------------------------------------------------- /static/images/datatables/back_enabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/back_enabled.jpg -------------------------------------------------------------------------------- /static/images/datatables/forward_disabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/forward_disabled.jpg -------------------------------------------------------------------------------- /static/images/datatables/forward_enabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/forward_enabled.jpg -------------------------------------------------------------------------------- /static/images/datatables/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/sort_asc.png -------------------------------------------------------------------------------- /static/images/datatables/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/sort_asc_disabled.png -------------------------------------------------------------------------------- /static/images/datatables/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/sort_both.png -------------------------------------------------------------------------------- /static/images/datatables/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/sort_desc.png -------------------------------------------------------------------------------- /static/images/datatables/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/datatables/sort_desc_disabled.png -------------------------------------------------------------------------------- /static/images/details_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/details_close.png -------------------------------------------------------------------------------- /static/images/details_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/details_open.png -------------------------------------------------------------------------------- /static/images/exploitdb.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/exploitdb.ico -------------------------------------------------------------------------------- /static/images/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /static/images/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/glyphicons-halflings.png -------------------------------------------------------------------------------- /static/images/msf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/msf.gif -------------------------------------------------------------------------------- /static/images/oreally/1100.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/1100.jpeg -------------------------------------------------------------------------------- /static/images/oreally/2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/2.jpeg -------------------------------------------------------------------------------- /static/images/oreally/222di0.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/222di0.jpeg -------------------------------------------------------------------------------- /static/images/oreally/243837180_cb1889f76b.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/243837180_cb1889f76b.jpeg -------------------------------------------------------------------------------- /static/images/oreally/4wEDw.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/4wEDw.jpeg -------------------------------------------------------------------------------- /static/images/oreally/8UQko.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/8UQko.jpeg -------------------------------------------------------------------------------- /static/images/oreally/Ballmer-Peak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/Ballmer-Peak.png -------------------------------------------------------------------------------- /static/images/oreally/Electrohome.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/Electrohome.jpeg -------------------------------------------------------------------------------- /static/images/oreally/SUDOMOKUN.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/SUDOMOKUN.jpeg -------------------------------------------------------------------------------- /static/images/oreally/Swamp-Nerds.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/Swamp-Nerds.jpeg -------------------------------------------------------------------------------- /static/images/oreally/When-Bipedal-Dogs-Attack.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/When-Bipedal-Dogs-Attack.jpeg -------------------------------------------------------------------------------- /static/images/oreally/backtrack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/backtrack.png -------------------------------------------------------------------------------- /static/images/oreally/cisco-box-house.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/cisco-box-house.jpeg -------------------------------------------------------------------------------- /static/images/oreally/ciscosystems-simpsons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/ciscosystems-simpsons.png -------------------------------------------------------------------------------- /static/images/oreally/ciscowaterkoeling.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/ciscowaterkoeling.jpeg -------------------------------------------------------------------------------- /static/images/oreally/codingdrunk.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/codingdrunk.jpg -------------------------------------------------------------------------------- /static/images/oreally/forth_on_the_atari.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/forth_on_the_atari.jpg -------------------------------------------------------------------------------- /static/images/oreally/gates_in_safe_mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/gates_in_safe_mode.png -------------------------------------------------------------------------------- /static/images/oreally/gorilla-no-ds.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/gorilla-no-ds.jpg -------------------------------------------------------------------------------- /static/images/oreally/hack-like-an-action-movie.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/hack-like-an-action-movie.jpeg -------------------------------------------------------------------------------- /static/images/oreally/hacker-at-work.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/hacker-at-work.gif -------------------------------------------------------------------------------- /static/images/oreally/hacker-repellant-large.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/hacker-repellant-large.jpeg -------------------------------------------------------------------------------- /static/images/oreally/hacker_bomb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/hacker_bomb.jpeg -------------------------------------------------------------------------------- /static/images/oreally/hacking_for_dummies.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/hacking_for_dummies.jpeg -------------------------------------------------------------------------------- /static/images/oreally/heman.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/heman.png -------------------------------------------------------------------------------- /static/images/oreally/http_413_she_said.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/http_413_she_said.jpg -------------------------------------------------------------------------------- /static/images/oreally/looonix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/looonix.png -------------------------------------------------------------------------------- /static/images/oreally/no-idea-what-im-doing-dog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/no-idea-what-im-doing-dog.jpg -------------------------------------------------------------------------------- /static/images/oreally/only-use-ie.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/only-use-ie.jpg -------------------------------------------------------------------------------- /static/images/oreally/powerglove.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/powerglove.jpeg -------------------------------------------------------------------------------- /static/images/oreally/pravetz82.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/pravetz82.jpeg -------------------------------------------------------------------------------- /static/images/oreally/programmer-en-espanol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/programmer-en-espanol.png -------------------------------------------------------------------------------- /static/images/oreally/realistic-hacking.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/realistic-hacking.gif -------------------------------------------------------------------------------- /static/images/oreally/sql_speed_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/sql_speed_camera.png -------------------------------------------------------------------------------- /static/images/oreally/stacktrace-or-gtfo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/stacktrace-or-gtfo.jpeg -------------------------------------------------------------------------------- /static/images/oreally/unix-bulgarianbar.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/unix-bulgarianbar.jpeg -------------------------------------------------------------------------------- /static/images/oreally/unplugged-ethernet.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/unplugged-ethernet.jpeg -------------------------------------------------------------------------------- /static/images/oreally/vikas-computers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/oreally/vikas-computers.jpg -------------------------------------------------------------------------------- /static/images/terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/images/terminal.png -------------------------------------------------------------------------------- /static/jstree/themes/default/d.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/jstree/themes/default/d.gif -------------------------------------------------------------------------------- /static/jstree/themes/default/d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/jstree/themes/default/d.png -------------------------------------------------------------------------------- /static/jstree/themes/default/throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/jstree/themes/default/throbber.gif -------------------------------------------------------------------------------- /static/markitup/images/handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/images/handle.png -------------------------------------------------------------------------------- /static/markitup/images/menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/images/menu.png -------------------------------------------------------------------------------- /static/markitup/images/submenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/images/submenu.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/bold.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/code.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/h1.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/h2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/h2.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/h3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/h3.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/h4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/h4.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/h5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/h5.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/h6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/h6.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/italic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/italic.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/link.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/list-bullet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/list-bullet.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/list-numeric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/list-numeric.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/picture.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/preview.png -------------------------------------------------------------------------------- /static/markitup/sets/markdown/images/quotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markdown/images/quotes.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/bold.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/code.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/h1.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/h2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/h2.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/h3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/h3.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/h4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/h4.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/h5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/h5.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/h6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/h6.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/italic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/italic.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/link.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/list-bullet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/list-bullet.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/list-numeric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/list-numeric.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/picture.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/preview.png -------------------------------------------------------------------------------- /static/markitup/sets/markmin/images/quotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/markmin/images/quotes.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/bold.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/code.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/h1.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/h2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/h2.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/h3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/h3.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/h4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/h4.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/h5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/h5.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/italic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/italic.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/link.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/list-bullet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/list-bullet.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/list-numeric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/list-numeric.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/picture.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/preview.png -------------------------------------------------------------------------------- /static/markitup/sets/rest/images/quotes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/markitup/sets/rest/images/quotes.png -------------------------------------------------------------------------------- /static/select2/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2012 Igor Vaynberg 2 | 3 | Version: @@ver@@ Timestamp: @@timestamp@@ 4 | 5 | This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU 6 | General Public License version 2 (the "GPL License"). You may choose either license to govern your 7 | use of this software only upon the condition that you accept all of the terms of either the Apache 8 | License or the GPL License. 9 | 10 | You may obtain a copy of the Apache License and the GPL License at: 11 | 12 | http://www.apache.org/licenses/LICENSE-2.0 13 | http://www.gnu.org/licenses/gpl-2.0.html 14 | 15 | Unless required by applicable law or agreed to in writing, software distributed under the Apache License 16 | or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 17 | either express or implied. See the Apache License and the GPL License for the specific language governing 18 | permissions and limitations under the Apache License and the GPL License. -------------------------------------------------------------------------------- /static/select2/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2", 3 | "version": "3.4.5", 4 | "main": ["select2.js", "select2.css", "select2.png", "select2x2.png", "select2-spinner.gif"], 5 | "dependencies": { 6 | "jquery": ">= 1.7.1" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /static/select2/select2-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/select2/select2-spinner.gif -------------------------------------------------------------------------------- /static/select2/select2.jquery.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "select2", 3 | "title": "Select2", 4 | "description": "Select2 is a jQuery based replacement for select boxes. It supports searching, remote data sets, and infinite scrolling of results.", 5 | "keywords": [ 6 | "select", 7 | "autocomplete", 8 | "typeahead", 9 | "dropdown", 10 | "multiselect", 11 | "tag", 12 | "tagging" 13 | ], 14 | "version": "3.4.5", 15 | "author": { 16 | "name": "Igor Vaynberg", 17 | "url": "https://github.com/ivaynberg" 18 | }, 19 | "licenses": [ 20 | { 21 | "type": "Apache", 22 | "url": "http://www.apache.org/licenses/LICENSE-2.0" 23 | }, 24 | { 25 | "type": "GPL v2", 26 | "url": "http://www.gnu.org/licenses/gpl-2.0.html" 27 | } 28 | ], 29 | "bugs": "https://github.com/ivaynberg/select2/issues", 30 | "homepage": "http://ivaynberg.github.com/select2", 31 | "docs": "http://ivaynberg.github.com/select2/", 32 | "download": "https://github.com/ivaynberg/select2/tags", 33 | "dependencies": { 34 | "jquery": ">=1.7.1" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /static/select2/select2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/select2/select2.png -------------------------------------------------------------------------------- /static/select2/select2_locale_ar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Arabic translation. 3 | * 4 | * Author: Your Name 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "لا توجد نتائج"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "من فضلك أدخل " + n + " حروف أكثر"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "من فضلك أحذف " + n + " حروف"; }, 13 | formatSelectionTooBig: function (limit) { return "يمكنك ان تختار " + limit + " أختيارات فقط"; }, 14 | formatLoadMore: function (pageNumber) { return "تحمل المذيد من النتائج ..."; }, 15 | formatSearching: function () { return "جاري البحث ..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_bg.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 translation. 3 | * 4 | * Author: Lubomir Vikev 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Няма намерени съвпадения"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Моля въведете още " + n + " символ" + (n == 1 ? "" : "а"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Моля въведете с " + n + " по-малко символ" + (n == 1? "" : "а"); }, 13 | formatSelectionTooBig: function (limit) { return "Можете да направите до " + limit + (limit == 1 ? " избор" : " избора"); }, 14 | formatLoadMore: function (pageNumber) { return "Зареждат се още..."; }, 15 | formatSearching: function () { return "Търсене..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_ca.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Catalan translation. 3 | * 4 | * Author: David Planella 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "No s'ha trobat cap coincidència"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduïu " + n + " caràcter" + (n == 1 ? "" : "s") + " més"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Introduïu " + n + " caràcter" + (n == 1? "" : "s") + "menys"; }, 13 | formatSelectionTooBig: function (limit) { return "Només podeu seleccionar " + limit + " element" + (limit == 1 ? "" : "s"); }, 14 | formatLoadMore: function (pageNumber) { return "S'estan carregant més resultats..."; }, 15 | formatSearching: function () { return "S'està cercant..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_da.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Danish translation. 3 | * 4 | * Author: Anders Jenbo 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Ingen resultater fundet"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Angiv venligst " + n + " tegn mere"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Angiv venligst " + n + " tegn mindre"; }, 13 | formatSelectionTooBig: function (limit) { return "Du kan kun vælge " + limit + " emne" + (limit === 1 ? "" : "r"); }, 14 | formatLoadMore: function (pageNumber) { return "Indlæser flere resultater…"; }, 15 | formatSearching: function () { return "Søger…"; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_de.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 German translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Keine Übereinstimmungen gefunden"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Bitte " + n + " Zeichen mehr eingeben"; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Bitte " + n + " Zeichen weniger eingeben"; }, 11 | formatSelectionTooBig: function (limit) { return "Sie können nur " + limit + " Eintr" + (limit === 1 ? "ag" : "äge") + " auswählen"; }, 12 | formatLoadMore: function (pageNumber) { return "Lade mehr Ergebnisse..."; }, 13 | formatSearching: function () { return "Suche..."; } 14 | }); 15 | })(jQuery); -------------------------------------------------------------------------------- /static/select2/select2_locale_el.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 translation. 3 | * 4 | * Author: Your Name 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Δεν βρέθηκαν αποτελέσματα"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Παρακαλούμε εισάγετε " + n + " περισσότερο" + (n == 1 ? "" : "υς") + " χαρακτήρ" + (n == 1 ? "α" : "ες"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Παρακαλούμε διαγράψτε " + n + " χαρακτήρ" + (n == 1 ? "α" : "ες"); }, 13 | formatSelectionTooBig: function (limit) { return "Μπορείτε να επιλέξετε μόνο " + limit + " αντικείμεν" + (limit == 1 ? "ο" : "α"); }, 14 | formatLoadMore: function (pageNumber) { return "Φόρτωση περισσότερων..."; }, 15 | formatSearching: function () { return "Αναζήτηση..."; } 16 | }); 17 | })(jQuery); -------------------------------------------------------------------------------- /static/select2/select2_locale_en.js.template: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 translation. 3 | * 4 | * Author: Your Name 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "No matches found"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " more character" + (n == 1 ? "" : "s"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, 13 | formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, 14 | formatLoadMore: function (pageNumber) { return "Loading more results..."; }, 15 | formatSearching: function () { return "Searching..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_es.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Spanish translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "No se encontraron resultados"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Por favor, introduzca " + n + " car" + (n == 1? "á" : "a") + "cter" + (n == 1? "" : "es"); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Por favor, elimine " + n + " car" + (n == 1? "á" : "a") + "cter" + (n == 1? "" : "es"); }, 11 | formatSelectionTooBig: function (limit) { return "Sólo puede seleccionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, 12 | formatLoadMore: function (pageNumber) { return "Cargando más resultados..."; }, 13 | formatSearching: function () { return "Buscando..."; } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /static/select2/select2_locale_et.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Estonian translation. 3 | * 4 | * Author: Kuldar Kalvik 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Tulemused puuduvad"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Sisesta " + n + " täht" + (n == 1 ? "" : "e") + " rohkem"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Sisesta " + n + " täht" + (n == 1? "" : "e") + " vähem"; }, 13 | formatSelectionTooBig: function (limit) { return "Saad vaid " + limit + " tulemus" + (limit == 1 ? "e" : "t") + " valida"; }, 14 | formatLoadMore: function (pageNumber) { return "Laen tulemusi.."; }, 15 | formatSearching: function () { return "Otsin.."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_eu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Basque translation. 3 | * 4 | * Author: Julen Ruiz Aizpuru 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { 11 | return "Ez da bat datorrenik aurkitu"; 12 | }, 13 | formatInputTooShort: function (input, min) { 14 | var n = min - input.length; 15 | if (n === 1) { 16 | return "Idatzi karaktere bat gehiago"; 17 | } else { 18 | return "Idatzi " + n + " karaktere gehiago"; 19 | } 20 | }, 21 | formatInputTooLong: function (input, max) { 22 | var n = input.length - max; 23 | if (n === 1) { 24 | return "Idatzi karaktere bat gutxiago"; 25 | } else { 26 | return "Idatzi " + n + " karaktere gutxiago"; 27 | } 28 | }, 29 | formatSelectionTooBig: function (limit) { 30 | if (limit === 1 ) { 31 | return "Elementu bakarra hauta dezakezu"; 32 | } else { 33 | return limit + " elementu hauta ditzakezu soilik"; 34 | } 35 | }, 36 | formatLoadMore: function (pageNumber) { 37 | return "Emaitza gehiago kargatzen..."; 38 | }, 39 | formatSearching: function () { 40 | return "Bilatzen..."; 41 | } 42 | }); 43 | })(jQuery); 44 | -------------------------------------------------------------------------------- /static/select2/select2_locale_fa.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 translation. 3 | * 4 | * Author: Ali Choopan 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "نتیجه‌ای یافت نشد."; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return " لطفا بیش از"+n+"کاراکتر وارد نمایید "; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return " لطفا" + n + " کاراکتر را حذف کنید."; }, 13 | formatSelectionTooBig: function (limit) { return "شما فقط می‌توانید " + limit + " مورد را انتخاب کنید"; }, 14 | formatLoadMore: function (pageNumber) { return "در حال بارگذاری موارد بیشتر ..."; }, 15 | formatSearching: function () { return "در حال جستجو"; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_fi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Finnish translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | $.extend($.fn.select2.defaults, { 7 | formatNoMatches: function () { 8 | return "Ei tuloksia"; 9 | }, 10 | formatInputTooShort: function (input, min) { 11 | var n = min - input.length; 12 | return "Ole hyvä ja anna " + n + " merkkiä lisää"; 13 | }, 14 | formatInputTooLong: function (input, max) { 15 | var n = input.length - max; 16 | return "Ole hyvä ja anna " + n + " merkkiä vähemmän"; 17 | }, 18 | formatSelectionTooBig: function (limit) { 19 | return "Voit valita ainoastaan " + limit + " kpl"; 20 | }, 21 | formatLoadMore: function (pageNumber) { 22 | return "Ladataan lisää tuloksia..."; 23 | }, 24 | formatSearching: function () { 25 | return "Etsitään..."; 26 | } 27 | }); 28 | })(jQuery); 29 | -------------------------------------------------------------------------------- /static/select2/select2_locale_fr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 French translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Aucun résultat trouvé"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Merci de saisir " + n + " caractère" + (n == 1? "" : "s") + " de plus"; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Merci de supprimer " + n + " caractère" + (n == 1? "" : "s"); }, 11 | formatSelectionTooBig: function (limit) { return "Vous pouvez seulement sélectionner " + limit + " élément" + (limit == 1 ? "" : "s"); }, 12 | formatLoadMore: function (pageNumber) { return "Chargement de résultats supplémentaires..."; }, 13 | formatSearching: function () { return "Recherche en cours..."; } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /static/select2/select2_locale_gl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Galician translation 3 | * 4 | * Author: Leandro Regueiro 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { 11 | return "Non se atoparon resultados"; 12 | }, 13 | formatInputTooShort: function (input, min) { 14 | var n = min - input.length; 15 | if (n === 1) { 16 | return "Engada un carácter"; 17 | } else { 18 | return "Engada " + n + " caracteres"; 19 | } 20 | }, 21 | formatInputTooLong: function (input, max) { 22 | var n = input.length - max; 23 | if (n === 1) { 24 | return "Elimine un carácter"; 25 | } else { 26 | return "Elimine " + n + " caracteres"; 27 | } 28 | }, 29 | formatSelectionTooBig: function (limit) { 30 | if (limit === 1 ) { 31 | return "Só pode seleccionar un elemento"; 32 | } else { 33 | return "Só pode seleccionar " + limit + " elementos"; 34 | } 35 | }, 36 | formatLoadMore: function (pageNumber) { 37 | return "Cargando máis resultados..."; 38 | }, 39 | formatSearching: function () { 40 | return "Buscando..."; 41 | } 42 | }); 43 | })(jQuery); 44 | -------------------------------------------------------------------------------- /static/select2/select2_locale_he.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Hebrew translation. 3 | * 4 | * Author: Yakir Sitbon 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "לא נמצאו התאמות"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "נא להזין עוד " + n + " תווים נוספים"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "נא להזין פחות " + n + " תווים"; }, 13 | formatSelectionTooBig: function (limit) { return "ניתן לבחור " + limit + " פריטים"; }, 14 | formatLoadMore: function (pageNumber) { return "טוען תוצאות נוספות..."; }, 15 | formatSearching: function () { return "מחפש..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_hu.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Hungarian translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Nincs találat."; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Túl rövid. Még " + n + " karakter hiányzik."; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Túl hosszú. " + n + " kerekterrel több mint kellene."; }, 11 | formatSelectionTooBig: function (limit) { return "Csak " + limit + " elemet lehet kiválasztani."; }, 12 | formatLoadMore: function (pageNumber) { return "Töltés..."; }, 13 | formatSearching: function () { return "Keresés..."; } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /static/select2/select2_locale_id.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Indonesian translation. 3 | * 4 | * Author: Ibrahim Yusuf 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Tidak ada data yang sesuai"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Masukkan " + n + " huruf lagi" + (n == 1 ? "" : "s"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Hapus " + n + " huruf" + (n == 1 ? "" : "s"); }, 13 | formatSelectionTooBig: function (limit) { return "Anda hanya dapat memilih " + limit + " pilihan" + (limit == 1 ? "" : "s"); }, 14 | formatLoadMore: function (pageNumber) { return "Mengambil data..."; }, 15 | formatSearching: function () { return "Mencari..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_is.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Icelandic translation. 3 | * 4 | */ 5 | (function ($) { 6 | "use strict"; 7 | 8 | $.extend($.fn.select2.defaults, { 9 | formatNoMatches: function () { return "Ekkert fannst"; }, 10 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vinsamlegast skrifið " + n + " staf" + (n == 1 ? "" : "i") + " í viðbót"; }, 11 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vinsamlegast styttið texta um " + n + " staf" + (n == 1 ? "" : "i"); }, 12 | formatSelectionTooBig: function (limit) { return "Þú getur aðeins valið " + limit + " atriði"; }, 13 | formatLoadMore: function (pageNumber) { return "Sæki fleiri niðurstöður..."; }, 14 | formatSearching: function () { return "Leita..."; } 15 | }); 16 | })(jQuery); 17 | -------------------------------------------------------------------------------- /static/select2/select2_locale_it.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Italian translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Nessuna corrispondenza trovata"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Inserisci ancora " + n + " caratter" + (n == 1? "e" : "i"); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Inserisci " + n + " caratter" + (n == 1? "e" : "i") + " in meno"; }, 11 | formatSelectionTooBig: function (limit) { return "Puoi selezionare solo " + limit + " element" + (limit == 1 ? "o" : "i"); }, 12 | formatLoadMore: function (pageNumber) { return "Caricamento in corso..."; }, 13 | formatSearching: function () { return "Ricerca..."; } 14 | }); 15 | })(jQuery); -------------------------------------------------------------------------------- /static/select2/select2_locale_ja.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Japanese translation. 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "該当なし"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "後" + n + "文字入れてください"; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "検索文字列が" + n + "文字長すぎます"; }, 11 | formatSelectionTooBig: function (limit) { return "最多で" + limit + "項目までしか選択できません"; }, 12 | formatLoadMore: function (pageNumber) { return "読込中・・・"; }, 13 | formatSearching: function () { return "検索中・・・"; } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /static/select2/select2_locale_ko.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 translation. 3 | * 4 | * Author: Swen Mun 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "결과 없음"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "너무 짧습니다. "+n+"글자 더 입력해주세요."; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "너무 깁니다. "+n+"글자 지워주세요."; }, 13 | formatSelectionTooBig: function (limit) { return "최대 "+limit+"개까지만 선택하실 수 있습니다."; }, 14 | formatLoadMore: function (pageNumber) { return "불러오는 중…"; }, 15 | formatSearching: function () { return "검색 중…"; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_lt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 lithuanian translation. 3 | * 4 | * Author: CRONUS Karmalakas 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Atitikmenų nerasta"; }, 11 | formatInputTooShort: function (input, min) { 12 | var n = min - input.length, 13 | suffix = (n % 10 == 1) && (n % 100 != 11) ? 'į' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'ius' : 'ių'); 14 | return "Įrašykite dar " + n + " simbol" + suffix; 15 | }, 16 | formatInputTooLong: function (input, max) { 17 | var n = input.length - max, 18 | suffix = (n % 10 == 1) && (n % 100 != 11) ? 'į' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'ius' : 'ių'); 19 | return "Pašalinkite " + n + " simbol" + suffix; 20 | }, 21 | formatSelectionTooBig: function (limit) { 22 | var n = limit, 23 | suffix = (n % 10 == 1) && (n % 100 != 11) ? 'ą' : (((n % 10 >= 2) && ((n % 100 < 10) || (n % 100 >= 20))) ? 'us' : 'ų'); 24 | return "Jūs galite pasirinkti tik " + limit + " element" + suffix; 25 | }, 26 | formatLoadMore: function (pageNumber) { return "Kraunama daugiau rezultatų..."; }, 27 | formatSearching: function () { return "Ieškoma..."; } 28 | }); 29 | })(jQuery); 30 | -------------------------------------------------------------------------------- /static/select2/select2_locale_lv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Latvian translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Sakritību nav"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Lūdzu ievadiet vēl " + n + " simbol" + (n == 11 ? "us" : (/^\d*[1]$/im.test(n)? "u" : "us")); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Lūdzu ievadiet par " + n + " simbol" + (n == 11 ? "iem" : (/^\d*[1]$/im.test(n)? "u" : "iem")) + " mazāk"; }, 11 | formatSelectionTooBig: function (limit) { return "Jūs varat izvēlēties ne vairāk kā " + limit + " element" + (limit == 11 ? "us" : (/^\d*[1]$/im.test(limit)? "u" : "us")); }, 12 | formatLoadMore: function (pageNumber) { return "Datu ielāde..."; }, 13 | formatSearching: function () { return "Meklēšana..."; } 14 | }); 15 | 16 | })(jQuery); 17 | -------------------------------------------------------------------------------- /static/select2/select2_locale_mk.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Macedonian translation. 3 | * 4 | * Author: Marko Aleksic 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Нема пронајдено совпаѓања"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Ве молиме внесете уште " + n + " карактер" + (n == 1 ? "" : "и"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Ве молиме внесете " + n + " помалку карактер" + (n == 1? "" : "и"); }, 13 | formatSelectionTooBig: function (limit) { return "Можете да изберете само " + limit + " ставк" + (limit == 1 ? "а" : "и"); }, 14 | formatLoadMore: function (pageNumber) { return "Вчитување резултати..."; }, 15 | formatSearching: function () { return "Пребарување..."; } 16 | }); 17 | })(jQuery); -------------------------------------------------------------------------------- /static/select2/select2_locale_ms.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Malay translation. 3 | * 4 | * Author: Kepoweran 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Tiada padanan yang ditemui"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Sila masukkan " + n + " aksara lagi"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Sila hapuskan " + n + " aksara"; }, 13 | formatSelectionTooBig: function (limit) { return "Anda hanya boleh memilih " + limit + " pilihan"; }, 14 | formatLoadMore: function (pageNumber) { return "Sedang memuatkan keputusan..."; }, 15 | formatSearching: function () { return "Mencari..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_nl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Dutch translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Geen resultaten gevonden"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " meer in"; }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vul " + n + " karakter" + (n == 1? "" : "s") + " minder in"; }, 11 | formatSelectionTooBig: function (limit) { return "Maximaal " + limit + " item" + (limit == 1 ? "" : "s") + " toegestaan"; }, 12 | formatLoadMore: function (pageNumber) { return "Meer resultaten laden..."; }, 13 | formatSearching: function () { return "Zoeken..."; } 14 | }); 15 | })(jQuery); -------------------------------------------------------------------------------- /static/select2/select2_locale_no.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Norwegian translation. 3 | * 4 | * Author: Torgeir Veimo 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Ingen treff"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vennligst skriv inn " + n + (n>1 ? " flere tegn" : " tegn til"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vennligst fjern " + n + " tegn"; }, 13 | formatSelectionTooBig: function (limit) { return "Du kan velge maks " + limit + " elementer"; }, 14 | formatLoadMore: function (pageNumber) { return "Laster flere resultater..."; }, 15 | formatSearching: function () { return "Søker..."; } 16 | }); 17 | })(jQuery); 18 | 19 | -------------------------------------------------------------------------------- /static/select2/select2_locale_pl.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Polish translation. 3 | * 4 | * Author: Jan Kondratowicz 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | var pl_suffix = function(n) { 10 | if(n == 1) return ""; 11 | if((n%100 > 1 && n%100 < 5) || (n%100 > 20 && n%10 > 1 && n%10 < 5)) return "i"; 12 | return "ów"; 13 | }; 14 | 15 | $.extend($.fn.select2.defaults, { 16 | formatNoMatches: function () { 17 | return "Brak wyników."; 18 | }, 19 | formatInputTooShort: function (input, min) { 20 | var n = min - input.length; 21 | return "Wpisz jeszcze " + n + " znak" + pl_suffix(n) + "."; 22 | }, 23 | formatInputTooLong: function (input, max) { 24 | var n = input.length - max; 25 | return "Wpisana fraza jest za długa o " + n + " znak" + pl_suffix(n) + "."; 26 | }, 27 | formatSelectionTooBig: function (limit) { 28 | return "Możesz zaznaczyć najwyżej " + limit + " element" + pl_suffix(limit) + "."; 29 | }, 30 | formatLoadMore: function (pageNumber) { 31 | return "Ładowanie wyników..."; 32 | }, 33 | formatSearching: function () { 34 | return "Szukanie..."; 35 | } 36 | }); 37 | })(jQuery); -------------------------------------------------------------------------------- /static/select2/select2_locale_pt-BR.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Brazilian Portuguese translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Nenhum resultado encontrado"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Informe " + n + " caractere" + (n == 1? "" : "s"); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " caractere" + (n == 1? "" : "s"); }, 11 | formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, 12 | formatLoadMore: function (pageNumber) { return "Carregando mais resultados..."; }, 13 | formatSearching: function () { return "Buscando..."; } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /static/select2/select2_locale_pt-PT.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Portuguese (Portugal) translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Nenhum resultado encontrado"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Introduza " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Apague " + n + " car" + (n == 1 ? "ácter" : "acteres"); }, 11 | formatSelectionTooBig: function (limit) { return "Só é possível selecionar " + limit + " elemento" + (limit == 1 ? "" : "s"); }, 12 | formatLoadMore: function (pageNumber) { return "A carregar mais resultados..."; }, 13 | formatSearching: function () { return "A pesquisar..."; } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /static/select2/select2_locale_ro.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Romanian translation. 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Nu a fost găsit nimic"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vă rugăm să introduceți incă " + n + " caracter" + (n == 1 ? "" : "e"); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vă rugăm să introduceți mai puțin de " + n + " caracter" + (n == 1? "" : "e"); }, 11 | formatSelectionTooBig: function (limit) { return "Aveți voie să selectați cel mult " + limit + " element" + (limit == 1 ? "" : "e"); }, 12 | formatLoadMore: function (pageNumber) { return "Se încarcă..."; }, 13 | formatSearching: function () { return "Căutare..."; } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /static/select2/select2_locale_ru.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Russian translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | 7 | $.extend($.fn.select2.defaults, { 8 | formatNoMatches: function () { return "Совпадений не найдено"; }, 9 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Пожалуйста, введите еще " + n + " символ" + (n == 1 ? "" : ((n > 1)&&(n < 5) ? "а" : "ов")); }, 10 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Пожалуйста, введите на " + n + " символ" + (n == 1 ? "" : ((n > 1)&&(n < 5)? "а" : "ов")) + " меньше"; }, 11 | formatSelectionTooBig: function (limit) { return "Вы можете выбрать не более " + limit + " элемент" + (limit == 1 ? "а" : "ов"); }, 12 | formatLoadMore: function (pageNumber) { return "Загрузка данных..."; }, 13 | formatSearching: function () { return "Поиск..."; } 14 | }); 15 | })(jQuery); 16 | -------------------------------------------------------------------------------- /static/select2/select2_locale_sv.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Swedish translation. 3 | * 4 | * Author: Jens Rantil 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Inga träffar"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Var god skriv in " + n + (n>1 ? " till tecken" : " tecken till"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Var god sudda ut " + n + " tecken"; }, 13 | formatSelectionTooBig: function (limit) { return "Du kan max välja " + limit + " element"; }, 14 | formatLoadMore: function (pageNumber) { return "Laddar fler resultat..."; }, 15 | formatSearching: function () { return "Söker..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_th.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Thai translation. 3 | * 4 | * Author: Atsawin Chaowanakritsanakul 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "ไม่พบข้อมูล"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "โปรดพิมพ์เพิ่มอีก " + n + " ตัวอักษร"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "โปรดลบออก " + n + " ตัวอักษร"; }, 13 | formatSelectionTooBig: function (limit) { return "คุณสามารถเลือกได้ไม่เกิน " + limit + " รายการ"; }, 14 | formatLoadMore: function (pageNumber) { return "กำลังค้นข้อมูลเพิ่ม..."; }, 15 | formatSearching: function () { return "กำลังค้นข้อมูล..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_tr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Turkish translation. 3 | * 4 | * Author: Salim KAYABAŞI 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Sonuç bulunamadı"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "En az " + n + " karakter daha girmelisiniz"; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return n + " karakter azaltmalısınız"; }, 13 | formatSelectionTooBig: function (limit) { return "Sadece " + limit + " seçim yapabilirsiniz"; }, 14 | formatLoadMore: function (pageNumber) { return "Daha fazla..."; }, 15 | formatSearching: function () { return "Aranıyor..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_ua.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 translation. 3 | * 4 | * Author: bigmihail 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Нічого не знайдено"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length, s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Введіть буль ласка ще " + n + " символ" + s[ (n%100>4 && n%100<=20)? 2 : p[Math.min(n%10, 5)] ]; }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max, s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Введіть буль ласка на " + n + " символ" + s[ (n%100>4 && n%100<=20)? 2 : p[Math.min(n%10, 5)] ] + " менше"; }, 13 | formatSelectionTooBig: function (limit) {var s = ["", "и", "ів"], p = [2,0,1,1,1,2]; return "Ви можете вибрати лише " + limit + " елемент" + s[ (limit%100>4 && limit%100<=20)? 2 : p[Math.min(limit%10, 5)] ]; }, 14 | formatLoadMore: function (pageNumber) { return "Завантаження даних..."; }, 15 | formatSearching: function () { return "Пошук..."; } 16 | }); 17 | })(jQuery); 18 | -------------------------------------------------------------------------------- /static/select2/select2_locale_vi.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Vietnamese translation. 3 | * 4 | * Author: Long Nguyen 5 | */ 6 | (function ($) { 7 | "use strict"; 8 | 9 | $.extend($.fn.select2.defaults, { 10 | formatNoMatches: function () { return "Không tìm thấy kết quả"; }, 11 | formatInputTooShort: function (input, min) { var n = min - input.length; return "Vui lòng nhập nhiều hơn " + n + " ký tự" + (n == 1 ? "" : "s"); }, 12 | formatInputTooLong: function (input, max) { var n = input.length - max; return "Vui lòng nhập ít hơn " + n + " ký tự" + (n == 1? "" : "s"); }, 13 | formatSelectionTooBig: function (limit) { return "Chỉ có thể chọn được " + limit + " tùy chọn" + (limit == 1 ? "" : "s"); }, 14 | formatLoadMore: function (pageNumber) { return "Đang lấy thêm kết quả..."; }, 15 | formatSearching: function () { return "Đang tìm..."; } 16 | }); 17 | })(jQuery); 18 | 19 | -------------------------------------------------------------------------------- /static/select2/select2_locale_zh-CN.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Chinese translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | $.extend($.fn.select2.defaults, { 7 | formatNoMatches: function () { return "没有找到匹配项"; }, 8 | formatInputTooShort: function (input, min) { var n = min - input.length; return "请再输入" + n + "个字符";}, 9 | formatInputTooLong: function (input, max) { var n = input.length - max; return "请删掉" + n + "个字符";}, 10 | formatSelectionTooBig: function (limit) { return "你只能选择最多" + limit + "项"; }, 11 | formatLoadMore: function (pageNumber) { return "加载结果中..."; }, 12 | formatSearching: function () { return "搜索中..."; } 13 | }); 14 | })(jQuery); 15 | -------------------------------------------------------------------------------- /static/select2/select2_locale_zh-TW.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Select2 Traditional Chinese translation 3 | */ 4 | (function ($) { 5 | "use strict"; 6 | $.extend($.fn.select2.defaults, { 7 | formatNoMatches: function () { return "沒有找到相符的項目"; }, 8 | formatInputTooShort: function (input, min) { var n = min - input.length; return "請再輸入" + n + "個字元";}, 9 | formatInputTooLong: function (input, max) { var n = input.length - max; return "請刪掉" + n + "個字元";}, 10 | formatSelectionTooBig: function (limit) { return "你只能選擇最多" + limit + "項"; }, 11 | formatLoadMore: function (pageNumber) { return "載入中..."; }, 12 | formatSearching: function () { return "搜尋中..."; } 13 | }); 14 | })(jQuery); 15 | -------------------------------------------------------------------------------- /static/select2/select2x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KvasirSecurity/Kvasir/a5b3775184a8343240e1154a1f762f75df04dc0a/static/select2/select2x2.png -------------------------------------------------------------------------------- /static/syntaxhighlighter/MIT-LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2003, 2004 Jim Weirich 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/config.rb: -------------------------------------------------------------------------------- 1 | environment = :production 2 | project_type = :stand_alone 3 | http_path = "/" 4 | css_dir = "../styles" 5 | sass_dir = "." 6 | images_dir = "images" 7 | sass_options = { 8 | :line_numbers => false, 9 | :debug_info => false 10 | } 11 | 12 | # output_style = :compressed 13 | # output_style = :compact 14 | output_style = :expanded 15 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shCoreDefault.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeDefault.scss"; 3 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shCoreDjango.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeDjango.scss"; 3 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shCoreEclipse.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeEclipse.scss"; 3 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shCoreEmacs.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeEmacs.scss"; 3 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shCoreFadeToGrey.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeFadeToGrey.scss"; 3 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shCoreMDUltra.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeMDUltra.scss"; 3 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shCoreMidnight.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeMidnight.scss"; 3 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shCoreRDark.scss: -------------------------------------------------------------------------------- 1 | @import "shCore.scss"; 2 | @import "shThemeRDark.scss"; 3 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shThemeDefault.scss: -------------------------------------------------------------------------------- 1 | // Default Syntax Highlighter theme. 2 | 3 | @import "_theme_template.scss"; 4 | 5 | .syntaxhighlighter { 6 | .keyword { font-weight: bold !important; } 7 | } 8 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shThemeDjango.scss: -------------------------------------------------------------------------------- 1 | // Django SyntaxHighlighter theme 2 | 3 | $background: #0a2b1d !default; 4 | 5 | $line_highlighted_background: #233729 !default; 6 | $line_highlighted_number: white !default; 7 | 8 | $gutter_text: #497958 !default; 9 | $gutter_border_color: #41a83e !default; 10 | 11 | $toolbar_collapsed_a: #96dd3b !default; 12 | $toolbar_collapsed_a_hover: #fff !default; 13 | $toolbar_collapsed_background: #000 !default; 14 | 15 | $toolbar_a: #fff !default; 16 | $toolbar_a_hover: #ffe862 !default; 17 | 18 | $code_plain: #f8f8f8 !default; 19 | $code_comments: #336442 !default; 20 | $code_string: #9df39f !default; 21 | $code_keyword: #96dd3b !default; 22 | $code_preprocessor: #91bb9e !default; 23 | $code_variable: #ffaa3e !default; 24 | $code_value: #f7e741 !default; 25 | $code_functions: #ffaa3e !default; 26 | $code_constants: #e0e8ff !default; 27 | $code_color1: #eb939a !default; 28 | $code_color2: #91bb9e !default; 29 | $code_color3: #edef7d !default; 30 | 31 | @import "_theme_template.scss"; 32 | 33 | .syntaxhighlighter { 34 | .comments { font-style: italic !important; } 35 | .keyword { font-weight: bold !important; } 36 | } 37 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shThemeEmacs.scss: -------------------------------------------------------------------------------- 1 | // Emacs SyntaxHighlighter theme based on theme by Joshua Emmons 2 | // http://www.skia.net/ 3 | 4 | $background: black !default; 5 | 6 | $line_highlighted_background: #2A3133 !default; 7 | $line_highlighted_number: white !default; 8 | 9 | $gutter_text: #d3d3d3 !default; 10 | $gutter_border_color: #990000 !default; 11 | 12 | $toolbar_collapsed_a: #ebdb8d !default; 13 | $toolbar_collapsed_a_hover: #ff7d27 !default; 14 | $toolbar_collapsed_background: black !default; 15 | 16 | $toolbar_a: #fff !default; 17 | $toolbar_a_hover: #9ccff4 !default; 18 | 19 | $code_plain: #d3d3d3 !default; 20 | $code_comments: #ff7d27 !default; 21 | $code_string: #ff9e7b !default; 22 | $code_keyword: aqua !default; 23 | $code_preprocessor: #aec4de !default; 24 | $code_variable: #ffaa3e !default; 25 | $code_value: #009900 !default; 26 | $code_functions: #81cef9 !default; 27 | $code_constants: #ff9e7b !default; 28 | $code_color1: #ebdb8d !default; 29 | $code_color2: #ff7d27 !default; 30 | $code_color3: #aec4de !default; 31 | 32 | @import "_theme_template.scss"; 33 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shThemeFadeToGrey.scss: -------------------------------------------------------------------------------- 1 | // Fade to Grey SyntaxHighlighter theme based on theme by Brasten Sager 2 | // :http//www.ibrasten.com/ 3 | 4 | $background: #121212 !default; 5 | 6 | $line_highlighted_background: #2C2C29 !default; 7 | $line_highlighted_number: white !default; 8 | 9 | $gutter_text: #afafaf !default; 10 | $gutter_border_color: #3185b9 !default; 11 | 12 | $toolbar_collapsed_a: #3185b9 !default; 13 | $toolbar_collapsed_a_hover: #d01d33 !default; 14 | $toolbar_collapsed_background: black !default; 15 | 16 | $toolbar_a: #fff !default; 17 | $toolbar_a_hover: #96daff !default; 18 | 19 | $code_plain: white !default; 20 | $code_comments: #696854 !default; 21 | $code_string: #e3e658 !default; 22 | $code_keyword: #d01d33 !default; 23 | $code_preprocessor: #435a5f !default; 24 | $code_variable: #898989 !default; 25 | $code_value: #009900 !default; 26 | $code_functions: #aaaaaa !default; 27 | $code_constants: #96daff !default; 28 | $code_color1: #ffc074 !default; 29 | $code_color2: #4a8cdb !default; 30 | $code_color3: #96daff !default; 31 | 32 | @import "_theme_template.scss"; 33 | 34 | .syntaxhighlighter { 35 | .functions { font-weight: bold !important; } 36 | } 37 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shThemeMDUltra.scss: -------------------------------------------------------------------------------- 1 | // MDUltra SyntaxHighlighter theme based on Midnight Theme 2 | // http://www.mddev.co.uk/ 3 | 4 | $background: #222222 !default; 5 | 6 | $line_highlighted_background: #253e5a !default; 7 | $line_highlighted_number: white !default; 8 | 9 | $gutter_text: #38566f !default; 10 | $gutter_border_color: #435a5f !default; 11 | 12 | $toolbar_collapsed_a: #428bdd !default; 13 | $toolbar_collapsed_a_hover: lime !default; 14 | $toolbar_collapsed_background: black !default; 15 | 16 | $toolbar_a: #aaaaff !default; 17 | $toolbar_a_hover: #9ccff4 !default; 18 | 19 | $code_plain: lime !default; 20 | $code_comments: #428bdd !default; 21 | $code_string: lime !default; 22 | $code_keyword: #aaaaff !default; 23 | $code_preprocessor: #8aa6c1 !default; 24 | $code_variable: aqua !default; 25 | $code_value: #f7e741 !default; 26 | $code_functions: #ff8000 !default; 27 | $code_constants: yellow !default; 28 | $code_color1: red !default; 29 | $code_color2: yellow !default; 30 | $code_color3: #ffaa3e !default; 31 | 32 | @import "_theme_template.scss"; 33 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shThemeMidnight.scss: -------------------------------------------------------------------------------- 1 | // Midnight SyntaxHighlighter theme based on theme by J.D. Myers 2 | // http://webdesign.lsnjd.com/ 3 | 4 | $background: #0f192a !default; 5 | 6 | $line_highlighted_background: #253e5a !default; 7 | $line_highlighted_number: #38566f !default; 8 | 9 | $gutter_text: #afafaf !default; 10 | $gutter_border_color: #435a5f !default; 11 | 12 | $toolbar_collapsed_a: #428bdd !default; 13 | $toolbar_collapsed_a_hover: #1dc116 !default; 14 | $toolbar_collapsed_background: #000 !default; 15 | 16 | $toolbar_a: #D1EDFF !default; 17 | $toolbar_a_hover: #8aa6c1 !default; 18 | 19 | $code_plain: #d1edff !default; 20 | $code_comments: #428bdd !default; 21 | $code_string: #1dc116 !default; 22 | $code_keyword: #b43d3d !default; 23 | $code_preprocessor: #8aa6c1 !default; 24 | $code_variable: #ffaa3e !default; 25 | $code_value: #f7e741 !default; 26 | $code_functions: #ffaa3e !default; 27 | $code_constants: #e0e8ff !default; 28 | $code_color1: #f8bb00 !default; 29 | $code_color2: white !default; 30 | $code_color3: #ffaa3e !default; 31 | 32 | @import "_theme_template.scss"; 33 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/compass/shThemeRDark.scss: -------------------------------------------------------------------------------- 1 | // RDark SyntaxHighlighter theme based on theme by Radu Dineiu 2 | // http://www.vim.org/scripts/script.php?script_id=1732 3 | 4 | $background: #1b2426 !default; 5 | 6 | $line_highlighted_background: #323E41 !default; 7 | $line_highlighted_number: #b9bdb6 !default; 8 | 9 | $gutter_text: #afafaf !default; 10 | $gutter_border_color: #435a5f !default; 11 | 12 | $toolbar_collapsed_a: #5ba1cf !default; 13 | $toolbar_collapsed_a_hover: #5ce638 !default; 14 | $toolbar_collapsed_background: #000 !default; 15 | 16 | $toolbar_a: #fff !default; 17 | $toolbar_a_hover: #e0e8ff !default; 18 | 19 | $code_plain: #b9bdb6 !default; 20 | $code_comments: #878a85 !default; 21 | $code_string: #5ce638 !default; 22 | $code_keyword: #5ba1cf !default; 23 | $code_preprocessor: #435a5f !default; 24 | $code_variable: #ffaa3e !default; 25 | $code_value: #009900 !default; 26 | $code_functions: #ffaa3e !default; 27 | $code_constants: #e0e8ff !default; 28 | $code_color1: #e0e8ff !default; 29 | $code_color2: white !default; 30 | $code_color3: #ffaa3e !default; 31 | 32 | @import "_theme_template.scss"; 33 | -------------------------------------------------------------------------------- /static/syntaxhighlighter/scripts/shAutoloader.js: -------------------------------------------------------------------------------- 1 | /** 2 | * SyntaxHighlighter 3 | * http://alexgorbatchev.com/SyntaxHighlighter 4 | * 5 | * SyntaxHighlighter is donationware. If you are using it, please donate. 6 | * http://alexgorbatchev.com/SyntaxHighlighter/donate.html 7 | * 8 | * @version 9 | * 3.0.83 (July 02 2010) 10 | * 11 | * @copyright 12 | * Copyright (C) 2004-2010 Alex Gorbatchev. 13 | * 14 | * @license 15 | * Dual licensed under the MIT and GPL licenses. 16 | */ 17 | eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(2(){1 h=5;h.I=2(){2 n(c,a){4(1 d=0;d 4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 | 18 | -------------------------------------------------------------------------------- /views/accounts/add.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | -------------------------------------------------------------------------------- /views/accounts/check_john_pot.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 |

John the Ripper .pot files can be located on a path the server running Kvasir can access or uploaded.

19 |

Paths can either be manually defined or use the pre-defined ones.

20 |

Known paths:

21 |

    22 | {{for path in known_paths:}} 23 |
  • {{=path[1]}}
  • 24 | {{pass}} 25 |

26 |
27 |
28 | 29 | {{include 'loading.html'}} 30 | -------------------------------------------------------------------------------- /views/accounts/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /views/accounts/import_file.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 |

For Windows accounts use the "info/0" service

19 |

Supported password file types:

20 |
    21 | {{for f in settings.password_file_types:}} 22 |
  • {{=f}}
  • 23 | {{pass}} 24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /views/accounts/import_file.load: -------------------------------------------------------------------------------- 1 |

For Windows accounts use the "info/0" service

2 | 3 | {{=form}} 4 | -------------------------------------------------------------------------------- /views/accounts/import_mass_password.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 |

For Windows accounts use the "info/0" service

19 |

The following file formats are supported:

20 |
21 |
Medusa
22 |
THC Hydra
23 |
Metasploit Creds CSV
24 |
Generate with "creds (options) -o output.csv"
25 |
26 |
27 |
28 | -------------------------------------------------------------------------------- /views/accounts/paste.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | -------------------------------------------------------------------------------- /views/accounts/read.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

Read accounts

4 | {{=A(T('Edit Account'),_href=URL('edit',args=request.args(0)))}} 5 |
6 | 7 | {{=form}} 8 | {{for t,f in db.t_accounts._referenced_by:}}{{if not t[-8:]=='_archive':}}[{{=A(t[2:],_href=URL('%s_select'%t[2:],args=(f,form.record.id)))}}]{{pass}}{{pass}} 9 | -------------------------------------------------------------------------------- /views/accounts/update_hashes_by_file.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 |

This process will load a list of hashes and cleartext to search through 19 | the account database. Any matching hash will assign the cleartext and 20 | compromise the account. Hashes must exactly match.

21 |

The following file formats are supported:

22 |
23 |
John the Ripper PWDUMP
24 |
Output when you use -format:LM or -format:NT
25 |
John the Ripper Shadow
26 |
Output when password file is a UNIX-formatted
27 |
Hash:Password
28 |
Password:Hash
29 |
30 |
31 |
32 | -------------------------------------------------------------------------------- /views/cpe/apps_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /views/cpe/apps_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /views/cpe/hardware_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /views/cpe/hardware_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /views/cpe/hardware_list.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{=A(T('Add CPE Hardware'),_href=URL('hardware_add'))}} 4 |
5 | 6 | 33 | 34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
IDCPE NameTitleVendorProductVersionUpdateEditionLanguage
50 | -------------------------------------------------------------------------------- /views/cpe/import_cpe_xml.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 |

Obtain the latest XML file from 19 | https://nvd.nist.gov/cpe.cfm or click the checkbox to have Kvasir 20 | download the latest file and process it.

21 |
22 |
23 | 24 | {{include 'loading.html'}} 25 | -------------------------------------------------------------------------------- /views/cpe/os_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /views/cpe/os_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 | {{=form}} 14 |
15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /views/cpe/purge.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

-=( Purge CPE Data )=-

4 | 5 |

Note: Deleting CPE data may break any existing connections to existing data! Use this at your own risk!

6 | 7 | {{=form}} 8 | -------------------------------------------------------------------------------- /views/default/data_dir.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 | {{=files}} 5 |
6 | -------------------------------------------------------------------------------- /views/default/database_backup.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 |
14 |

CSV database exports can be downloaded as a file or stored locally ({{=backup_dir}})

15 |

This process can take a few minutes for large data. It can be manually performed using 16 | the script in private:

17 |
./web2py.py -R applications/{{=request.application}}/private/db_csv.py -S {{=request.application}} -M -A -e filename.csv.gz
18 |

Alternatively you may want to use your database engine's export/import features.

19 |
20 |
21 | {{=form}} 22 |
23 |
24 |
25 |
26 | 27 |
28 | 29 | {{include 'loading.html'}} -------------------------------------------------------------------------------- /views/default/database_restore.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |
5 |
6 |
7 | 8 | 9 | 10 |
{{=response.title or request.application}}
11 |
12 |
13 |
14 |

CSV database exports can be uploaded from a file stored locally on the 15 | webserver data directory ({{=backup_dir}}) or uploaded. Gzip compressed files ok.

16 |

Restoring to an instance with existing data will NOT migrate properly. Databases 17 | should be empty before restoring.

18 |

This process can take a few minutes for large data. It can be manually performed using 19 | the script in private:

20 |
./web2py.py -R applications/{{=request.application}}/private/db_csv.py -S {{=request.application}} -M -A -i filename.csv
21 |

Alternatively you may want to use your database engine's export/import features.

22 |
23 |
24 | {{=form}} 25 |
26 |
27 |
28 |
29 | 30 |
31 | 32 | {{include 'loading.html'}} -------------------------------------------------------------------------------- /views/default/error.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 |

{{=T('Kvasir has encountered an error!')}}

5 |
6 | {{=msg}} 7 |
8 |
9 | 10 |
11 |

{{=T('Please enjoy the following humerous image as compensation')}}

12 | {{=IMG(_src=URL('static', 'images/oreally/%s' % (err404)), _alt="Whoopsie!", _class="img-responsive img-rounded")}} 13 |
-------------------------------------------------------------------------------- /views/default/purge_data.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 | {{=form}} 5 |
6 | 7 |
8 |

Starting over? Select the sections you want to purge and hit submit.

9 | 10 |

All data about hosts, links to vulnerabilties, accounts, and services may be purged.

11 |
12 | 13 | {{include 'loading.html'}} 14 | -------------------------------------------------------------------------------- /views/default/update_dynamic_fields.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
4 | {{=form}} 5 |
6 | 7 |
8 |

Dynamic database fields are generally only updated after large actions such as imports are performed. 9 | These fields include the following:

10 | 11 |
12 |
  • Vulnerabilities to Exploits
  • 13 |
  • Service counts
  • 14 |
  • Vulnerabilty counts
  • 15 |
  • Vulnerability sparkline
  • 16 |
    17 |
    18 | 19 |
    20 | {{=IMG(_class="err404", _src=URL('static', 'images/oreally/%s' % (err404)), _alt="Whoopsie!")}} 21 |
    22 | 23 | -------------------------------------------------------------------------------- /views/default/user.csv: -------------------------------------------------------------------------------- 1 | {{ 2 | if settings is not None: 3 | import cStringIO 4 | stream=cStringIO.StringIO() 5 | form.export_to_csv_file(stream) 6 | response.headers['Content-Type']='application/vnd.ms-excel' 7 | response.write(stream.getvalue(), escape=False) 8 | else: 9 | response.write("No settings") 10 | }} 11 | -------------------------------------------------------------------------------- /views/default/user.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 |
    3 | {{if request.args(0)=='login':}} 4 |
    5 | 8 |
    9 | {{pass}} 10 |
    11 |
    12 |
    13 |
    14 |
    Enter username and password to continue.
    15 |
    16 |
    17 | {{=form}} 18 |
    19 |
    20 |
    21 |
    22 |
    23 | 24 | {{if request.env.remote_addr in ['::1', '127.0.0.1', '::ffff:127.0.0.1']:}} 25 |
    26 |

    Since you're connecting via localhost you can create a new user

    27 |
    28 | {{pass}} 29 | -------------------------------------------------------------------------------- /views/default/wiki.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{=content}} 4 | -------------------------------------------------------------------------------- /views/evidence/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | 19 | 32 | -------------------------------------------------------------------------------- /views/evidence/add.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | 3 | 16 | -------------------------------------------------------------------------------- /views/evidence/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/exploitdb/detail.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |

    {{=record.f_description}}

    5 |
    6 |
    7 |
    Author
    8 |
    {{=record.f_author}}
    9 |
    Platform / Type
    10 |
    {{=record.f_platform}} / {{=record.f_type}}
    11 |
    Release Date
    12 |
    {{=record.f_date}}
    13 |
    Filename
    14 |
    {{=record.f_file}} Download
    15 |
    16 |
    17 |
    18 | 19 |
    20 | 23 |
    24 | 25 | 26 | 27 | 28 | 29 | 30 | 33 | -------------------------------------------------------------------------------- /views/exploitdb/git_pull.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{ 4 | dlg = dialog 5 | smt_button = dlg.element(_type="submit") 6 | smt_button['_class'] = 'btn btn-primary' 7 | smt_button['_style'] = 'margin-right:4px;' 8 | ccl_button = dlg.element(_type="button") 9 | ccl_button['_class'] = 'btn' 10 | }} 11 | 12 |

    Github Pull

    13 |

    This will pull changes from https://github.com/offensive-security/exploit-database.git using git

    14 | 15 | {{=dialog}} 16 | 17 | {{include 'loading.html'}} 18 | -------------------------------------------------------------------------------- /views/exploitdb/update_db.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{ 4 | dlg = dialog 5 | smt_button = dlg.element(_type="submit") 6 | smt_button['_class'] = 'btn btn-primary' 7 | smt_button['_style'] = 'margin-right:4px;' 8 | ccl_button = dlg.element(_type="button") 9 | ccl_button['_class'] = 'btn' 10 | }} 11 | 12 |

    Update ExploitDB Database

    13 |

    14 | This will synchronize contents of {{=settings.exploitdb_path}}/files.csv and Kvasir's database. 15 |

    16 | 17 | {{=dialog}} 18 | 19 | {{include 'loading.html'}} 20 | -------------------------------------------------------------------------------- /views/exploits/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/generic.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=BEAUTIFY(response._vars)}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/generic.json: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import json}}{{=XML(json(response._vars))}} 2 | -------------------------------------------------------------------------------- /views/generic.load: -------------------------------------------------------------------------------- 1 | {{''' 2 | # License: Public Domain 3 | # Author: Iceberg at 21cn dot com 4 | 5 | With this generic.load file, you can use same function to serve two purposes. 6 | 7 | = regular action 8 | - ajax callback (when called with .load) 9 | 10 | Example modified from http://www.web2py.com/AlterEgo/default/show/252: 11 | 12 | def index(): 13 | return dict( 14 | part1='hello world', 15 | part2=LOAD(url=URL(r=request,f='auxiliary.load'),ajax=True)) 16 | 17 | def auxiliary(): 18 | form=SQLFORM.factory(Field('name')) 19 | if form.accepts(request.vars): 20 | response.flash = 'ok' 21 | return dict(message="Hello %s" % form.vars.name) 22 | return dict(form=form) 23 | 24 | Notice: 25 | 26 | - no need to set response.headers['web2py-response-flash'] 27 | - no need to return a string 28 | even if the function is called via ajax. 29 | 30 | '''}} 31 |
    32 | {{if len(response._vars)==1:}}{{=response._vars.values()[0]}}{{else:}}{{=BEAUTIFY(response._vars)}}{{pass}} 33 |
    -------------------------------------------------------------------------------- /views/generic.pdf: -------------------------------------------------------------------------------- 1 | {{ 2 | import re 3 | from gluon.contrib.markmin.markmin2pdf import markmin2pdf 4 | def markmin_serializer(text,tag=None,attr={}): 5 | if tag==None: return re.sub('\s+',' ',text) 6 | if tag=='br': return '\n\n' 7 | if tag=='h1': return '# '+text+'\n\n' 8 | if tag=='h2': return '#'*2+' '+text+'\n\n' 9 | if tag=='h3': return '#'*3+' '+text+'\n\n' 10 | if tag=='h4': return '#'*4+' '+text+'\n\n' 11 | if tag=='p': return text+'\n\n' 12 | if tag=='li': return '\n- '+text.replace('\n',' ') 13 | if tag=='tr': return text[3:].replace('\n',' ')+'\n' 14 | if tag in ['table','blockquote']: return '\n-----\n'+text+'\n------\n' 15 | if tag in ['td','th']: return ' | '+text 16 | if tag in ['b','strong','label']: return '**%s**' % text 17 | if tag in ['em','i']: return "''%s''" % text 18 | if tag in ['tt','code']: return '``%s``' % text 19 | if tag=='a': return '[[%s %s]]' % (text,attr.get('_href','')) 20 | return text 21 | html=response.render('%s/%s.html' % (request.controller,request.function)) 22 | markmin=TAG(html).element('#content').flatten(markmin_serializer) 23 | pdf,warnings,errors=markmin2pdf(markmin) 24 | if errors: 25 | response.headers['Content-Type']='text' 26 | response.write(HTML(BODY(H1('errors'),LU(*errors),H1('warnings'),LU(*warnings)))) 27 | else: 28 | response.headers['Content-Type']='application/pdf' 29 | response.write(pdf,escape=False) 30 | pass 31 | }} -------------------------------------------------------------------------------- /views/generic.rss: -------------------------------------------------------------------------------- 1 | {{ 2 | ### 3 | # response._vars contains the dictionary returned by the controller action 4 | # for this to work the action must return something like 5 | # 6 | # dict(title=...,link=...,description=...,created_on='...',items=...) 7 | # 8 | # items is a list of dictionaries each with title, link, description, pub_date. 9 | ### 10 | try: 11 | from gluon.serializers import rss 12 | response.write(rss(response._vars),escape=False) 13 | response.headers['Content-Type']='application/rss+xml' 14 | except: 15 | raise HTTP(405,'no rss') 16 | }} -------------------------------------------------------------------------------- /views/generic.xml: -------------------------------------------------------------------------------- 1 | {{ 2 | ### 3 | # response._vars contains the dictionary returned by thecontroller action 4 | ### 5 | try: 6 | from gluon.serializers import xml 7 | response.write(xml(response._vars),escape=False) 8 | response.headers['Content-Type']='text/xml' 9 | except: 10 | raise HTTP(405,'no xml') 11 | }} 12 | -------------------------------------------------------------------------------- /views/hosts/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/hosts/csv_hostupdate.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 |

    CSV file has the following format:

    19 | 20 |
    IP Address,Hostname
    21 | 22 |

    Select "Overwrite" to ignore hostnames that already exist, otherwise the record will be skipped.

    23 | 24 |

    Select "Add missing hosts" to do just that.

    25 |
    26 |
    27 | -------------------------------------------------------------------------------- /views/hosts/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/hosts/edit.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | -------------------------------------------------------------------------------- /views/hosts/filter.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | 19 | 33 | -------------------------------------------------------------------------------- /views/hosts/filter.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | 3 | 17 | -------------------------------------------------------------------------------- /views/hosts/mass_asset_group.load: -------------------------------------------------------------------------------- 1 | 6 | 7 |
    8 | {{=form}} 9 |
    10 | 11 | -------------------------------------------------------------------------------- /views/hosts/mass_os_refs.load: -------------------------------------------------------------------------------- 1 | 6 | 7 |
    8 | {{=form}} 9 |
    10 | 11 | -------------------------------------------------------------------------------- /views/hotkeys.html: -------------------------------------------------------------------------------- 1 | {{ 2 | # Hotkey definitions 3 | # 4 | # This file defines the global hotkeys and their supportive elements. 5 | # Hotkeys are set by using the "Mousetrap.bind()" function: 6 | # 7 | # Mousetrap.bind('', function() { } ); 8 | # 9 | # Where can be any keyboard key and modifer. 10 | # 11 | # For modifier keys you can use shift, ctrl, alt, option, meta, and command. 12 | # 13 | # Other special keys are backspace, tab, enter, return, capslock, esc, escape, 14 | # space, pageup, pagedown, end, home, left, up, right, down, ins, and del. 15 | # 16 | # Any other key you should be able to reference by name like a, /, $, *, or =. 17 | # 18 | # To define multiple key combos put them in an array: ['a', 'A'] 19 | # 20 | # Key sequences are also possible: 'g o command+enter' 21 | # 22 | # Any bindings loaded after this will overwrite an existing binding. To remove 23 | # a binding use "Mousetrap.unbind()" 24 | # 25 | # More information on Mousetrap is available at: http://craig.is/killing/mice 26 | # and https://github.com/ccampbell/mousetrap 27 | }} 28 | 29 | 30 | 31 | 32 | 43 | -------------------------------------------------------------------------------- /views/loading.html: -------------------------------------------------------------------------------- 1 | 19 | 20 |
    21 | 22 | -------------------------------------------------------------------------------- /views/markitup_markmin.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /views/metasploit.html: -------------------------------------------------------------------------------- 1 | {{if alert:}} 2 |
    3 |
    4 | 5 |

    Invalid Metasploit Pro Settings

    6 |

    Unable to speak to Metasploit Pro via the API. This could be due to the service not being active, 7 | firewalls or network connectivity, invalid API key, etc.

    8 | {{if error:}} 9 |
    10 |

    Error message

    11 |

    {{=error}}

    12 | {{pass}} 13 |
    14 |

    15 | Edit Metasploit API Settings 16 |

    17 |
    18 |
    19 |
    20 | {{pass}} 21 | -------------------------------------------------------------------------------- /views/metasploit/api_settings.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'metasploit.html'}} 3 | 4 | {{if form:}} 5 |
    6 |
    7 |
    8 |
    9 | 10 | 11 | 12 |
    {{=response.title or request.application}}
    13 |
    14 |
    15 | {{=form}} 16 |
    17 |
    18 |
    19 |
    20 |
    21 |
    Current Workspace Name
    22 |
    {{=session.msf_workspace}}
    23 |
    Current Workspace Number
    24 |
    {{=session.msf_workspace_num}}
    25 |
    Metasploit User
    26 |
    {{=session.msf_user}}
    27 |
    28 |

    Note that we are unable to learn the number of your Metasploit workspace. You must manually 29 | set this value here in order for links to Metasploit to work correctly. By default we select the number 30 | '1' because that's generally on everyone's setup.

    31 | 32 |

    This number can be found by looking at your Metasploit URL. For example the workspace number is 10 for the 33 | URL https://localhost:3790/workspaces/10.

    34 |
    35 |
    36 | {{pass}} 37 | -------------------------------------------------------------------------------- /views/metasploit/import_pwdump.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'metasploit.html'}} 3 | 4 | {{if form:}} 5 |
    6 |
    7 |
    8 |
    9 | 10 | 11 | 12 |
    {{=response.title or request.application}}
    13 |
    14 |
    15 |
    16 | {{=form}} 17 |
    18 |
    19 |
    20 |
    21 |
    22 | 23 | 24 |
    25 |
    26 |
    Current Workspace Name
    27 |
    {{=session.msf_workspace}}
    28 |
    Current Workspace Number
    29 |
    {{=session.msf_workspace_num}}
    30 |
    Metasploit User
    31 |
    {{=session.msf_user}}
    32 |
    33 | Update 34 |
    35 | 36 | {{pass}} 37 | -------------------------------------------------------------------------------- /views/metasploit/import_report_xml.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'metasploit.html'}} 3 | 4 | {{if form:}} 5 |
    6 |
    7 |
    8 |
    9 | 10 | 11 | 12 |
    {{=response.title or request.application}}
    13 |
    14 |
    15 |
    16 | {{=form}} 17 |
    18 |
    19 |
    20 |
    21 |
    22 |

    Generate a Metasploit XML file by doing "db_export -f xml filename.xml" from msfconsole or through the WebUI.

    23 |
    24 |
    Current Workspace Name
    25 |
    {{=session.msf_workspace}}
    26 |
    Current Workspace Number
    27 |
    {{=session.msf_workspace_num}}
    28 |
    Metasploit User
    29 |
    {{=session.msf_user}}
    30 |
    31 | Update 32 |
    33 |
    34 | {{pass}} 35 | -------------------------------------------------------------------------------- /views/metasploit/import_screenshots.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'metasploit.html'}} 3 | 4 | {{if form:}} 5 |
    6 |
    7 |
    8 |
    9 | 10 | 11 | 12 |
    {{=response.title or request.application}}
    13 |
    14 |
    15 |
    16 | {{=form}} 17 |
    18 |
    19 |
    20 |
    21 |
    22 | 23 | 24 |
    25 |
    26 |
    Current Workspace Name
    27 |
    {{=session.msf_workspace}}
    28 |
    Current Workspace Number
    29 |
    {{=session.msf_workspace_num}}
    30 |
    Metasploit User
    31 |
    {{=session.msf_user}}
    32 |
    33 | Update 34 |
    35 | 36 | {{pass}} 37 | -------------------------------------------------------------------------------- /views/metasploit/send_accounts.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'metasploit.html'}} 3 | 4 | {{if form:}} 5 |
    6 |
    7 |
    8 |
    9 | 10 | 11 | 12 |
    {{=response.title or request.application}}
    13 |
    14 |
    15 |
    16 | {{=form}} 17 |
    18 |
    19 |
    20 |
    21 |
    22 |

    Note that this requires Metasploit Pro and the Kvasir web server are on the same system or networked file systems.

    23 |
    24 |
    Current Workspace Name
    25 |
    {{=session.msf_workspace}}
    26 |
    Current Workspace Number
    27 |
    {{=session.msf_workspace_num}}
    28 |
    Metasploit User
    29 |
    {{=session.msf_user}}
    30 |
    31 | Update 32 |
    33 |
    34 | {{pass}} 35 | -------------------------------------------------------------------------------- /views/metasploit/send_scanxml.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'metasploit.html'}} 3 | 4 | {{if form:}} 5 |
    6 |
    7 |
    8 |
    9 | 10 | 11 | 12 |
    {{=response.title or request.application}}
    13 |
    14 |
    15 |
    16 | {{=form}} 17 |
    18 |
    19 |
    20 |
    21 |
    22 |

    Note that this requires Metasploit Pro and the Kvasir web server are on the same system or networked file systems.

    23 |
    24 |
    Current Workspace Name
    25 |
    {{=session.msf_workspace}}
    26 |
    Current Workspace Number
    27 |
    {{=session.msf_workspace_num}}
    28 |
    Metasploit User
    29 |
    {{=session.msf_user}}
    30 |
    31 | Update 32 |
    33 |
    34 | {{pass}} 35 | -------------------------------------------------------------------------------- /views/metasploit/task_list.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'metasploit.html'}} 3 | 4 |
    5 | {{=tasks}} 6 |
    7 | -------------------------------------------------------------------------------- /views/nessus/import_scan.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 |

    Nessus scan files with the extension .nessus are best used for importing. When exporting 19 | from the Nessus Standalone GUI always select the Nessus format if Kvasir is not configured 20 | or able to talk directly to the console.

    21 | 22 |

    If CSV is the only format available Kvasir will support it. Should this export come from the Standalone 23 | scanner the data will be very limited. CSV output from the centralized management console is much better.

    24 |
    25 |
    26 | 27 | {{include 'loading.html'}} 28 | -------------------------------------------------------------------------------- /views/netbios/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/netbios/by_host.load: -------------------------------------------------------------------------------- 1 | {{if not form:}} 2 | {{=XML(addnetbios.formModal())}} 3 |
    4 | {{=XML(addnetbios.btn_show())}} 5 |
    6 | {{else:}} 7 |
    8 | {{=form}} 9 |
    10 | {{pass}} -------------------------------------------------------------------------------- /views/netbios/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/netbios/list.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{=form}} 4 | -------------------------------------------------------------------------------- /views/nexpose/import_vulnid.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{from skaldship.nexpose import nexpose_get_config}} 4 | {{nexpose_config = nexpose_get_config()}} 5 | 6 |
    7 |
    8 |
    9 |
    10 | 11 | 12 | 13 |
    {{=response.title or request.application}}
    14 |
    15 |
    16 | {{=form}} 17 |
    18 |
    19 |
    20 |
    21 |

    This will import a vulnerability from the configured Nexpose server based upon the vulnerability id field 22 | provided.

    23 |
    24 |
    Server
    25 |
    {{=nexpose_config['host']}}
    26 |
    Port
    27 |
    {{=nexpose_config['port']}}
    28 |
    Username
    29 |
    {{=nexpose_config['user']}}
    30 |
    31 |
    32 |
    33 | -------------------------------------------------------------------------------- /views/nexpose/import_xml_scan.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | 19 | {{include 'loading.html'}} 20 | -------------------------------------------------------------------------------- /views/nexpose/list_scantemplates.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

    List Nexpose Scan Templates

    4 | 5 |
    6 | 7 | {{for e in html:}}{{pass}} 8 |
    {{=e}}
    9 |
    10 | -------------------------------------------------------------------------------- /views/nexpose/scan_template.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

    List Nexpose Scan Templates

    4 | {{=form}} 5 | 6 |
    7 | 8 | {{for e in html:}}{{pass}} 9 |
    {{=e}}
    10 |
    11 | {{=form2}} 12 | -------------------------------------------------------------------------------- /views/nexpose/vuln_update.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 | 18 |
    19 |

    This will import all vulnerability data from the configured Nexpose server. It can take a few hours to process.

    20 |
    21 |
    Server
    22 |
    {{=nexpose_config['host']}}
    23 |
    Port
    24 |
    {{=nexpose_config['port']}}
    25 |
    Username
    26 |
    {{=nexpose_config['user']}}
    27 |
    28 |
    29 | 30 |
    31 | -------------------------------------------------------------------------------- /views/nmap/import_xml_scan.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | 19 | {{include 'loading.html'}} 20 | -------------------------------------------------------------------------------- /views/notes/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/notes/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/os/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/os/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/os/refs_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/os/refs_add.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | -------------------------------------------------------------------------------- /views/os/refs_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/report/customer_xml.xml: -------------------------------------------------------------------------------- 1 | {{ 2 | ### 3 | # response._vars contains the dictionary returned by thecontroller action 4 | ### 5 | try: 6 | from gluon.serializers import xml 7 | response.write(xml(response._vars),escape=False) 8 | response.headers['Content-Type']='text/xml' 9 | except: 10 | raise HTTP(405,'no xml') 11 | }} 12 | -------------------------------------------------------------------------------- /views/report/graphs.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'filter_hosts.html'}} 3 | 4 |

    -=( Graphs )=-

    5 | 6 |

    NOTE: You must reload the page after changing a filter. Bummer, dude.

    7 | 8 |
    9 |
    10 | Filter 11 | {{=form}} 12 |
    13 |
    14 | 15 | 26 | 27 |
    28 | 29 |
    30 | 31 |
    -------------------------------------------------------------------------------- /views/report/spreadsheet.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | 19 | {{include 'loading.html'}} 20 | -------------------------------------------------------------------------------- /views/services/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/services/add.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | -------------------------------------------------------------------------------- /views/services/apps_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/services/apps_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/services/apps_list.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

    Select services_apps

    4 | 5 | {{if rows:}} 6 | {{headers=dict((str(k),k.label) for k in db.t_services_apps_refs)}} 7 | {{=SQLTABLE(rows,headers=headers)}} 8 | {{else:}} 9 | {{=TAG.blockquote(T('No Data'))}} 10 | {{pass}} 11 | -------------------------------------------------------------------------------- /views/services/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | 19 |
    20 |
    21 |
    22 |
    23 | 24 | 25 | 26 |
    Service Information Records
    27 |
    28 |
    29 | {{=infos}} 30 |
    31 |
    32 |
    33 |
    34 | -------------------------------------------------------------------------------- /views/services/hosts_with_port.csv: -------------------------------------------------------------------------------- 1 | {{ 2 | import cStringIO 3 | stream=cStringIO.StringIO() 4 | ip_list.export_to_csv_file(stream) 5 | response.headers['Content-Type']='text/plain' 6 | response.write(stream.getvalue(), escape=False) 7 | }} -------------------------------------------------------------------------------- /views/services/info_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/services/info_by_svcid.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | 18 |

    Service Information List

    19 | 20 | {{if rows:}} 21 | {{=SQLTABLE(rows, headers='labels', truncate=255, _id="datatable")}} 22 | {{else:}} 23 | {{=TAG.blockquote(T('No Data'))}} 24 | {{pass}} 25 | -------------------------------------------------------------------------------- /views/services/info_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/services/info_list.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |

    -=( Service Information )=-

    4 | 5 | 31 | 32 |
    33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
    IDIPProtocolPortTypeValue
    45 | -------------------------------------------------------------------------------- /views/snmp/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/snmp/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/stats/vulncloud.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 | .... Loading .... 5 |
    6 | 7 | 16 | -------------------------------------------------------------------------------- /views/tooloutput/add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/tooloutput/add.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | -------------------------------------------------------------------------------- /views/tooloutput/edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/tooloutput/view.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | 6 | 7 |
    8 |

    Note

    9 |
    10 |     {{=note}}
    11 |     
    12 |
    13 | 14 |
    15 |

    Output

    16 | 19 |
    20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | -------------------------------------------------------------------------------- /views/vulns/aa_by_host.load: -------------------------------------------------------------------------------- 1 | 6 | 7 | {{=tree}} 8 | 9 | 23 | -------------------------------------------------------------------------------- /views/vulns/edit.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | -------------------------------------------------------------------------------- /views/vulns/service_vulns_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or settings.title}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | 19 | -------------------------------------------------------------------------------- /views/vulns/service_vulns_add.load: -------------------------------------------------------------------------------- 1 | {{=form}} 2 | -------------------------------------------------------------------------------- /views/vulns/service_vulns_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'markitup_markmin.html'}} 3 | 4 |
    5 |
    6 |
    7 |
    8 | 9 | 10 | 11 |
    {{=response.title or request.application}}
    12 |
    13 |
    14 | {{=form}} 15 |
    16 |
    17 |
    18 |
    19 | -------------------------------------------------------------------------------- /views/vulns/service_vulns_list.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 | {{if rows:}} 5 | {{=rows}} 6 | {{else:}} 7 | {{=TAG.blockquote(T('No Data'))}} 8 | {{pass}} 9 | 10 |
    11 | -------------------------------------------------------------------------------- /views/vulns/vuln_references_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/vulns/vuln_references_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/vulns/vuln_references_list.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{=rows}} 4 | 5 |
    6 | {{#if rows:}} 7 | {{#headers=dict((str(k),k.label) for k in db.t_vuln_references)}} 8 | {{#=SQLTABLE(rows,headers=headers,_class="datatable",_width="100%")}} 9 | {{#else:}} 10 | {{#=TAG.blockquote(T('No Data'))}} 11 | {{#pass}} 12 |
    13 | 14 | 24 | -------------------------------------------------------------------------------- /views/vulns/vuln_refs.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 | {{=rows}} 4 | 5 |
    6 | {{#if rows:}} 7 | {{#headers=dict((str(k),k.label) for k in db.t_vuln_references)}} 8 | {{#=SQLTABLE(rows,headers=headers,_class="datatable",_width="100%")}} 9 | {{#else:}} 10 | {{#=TAG.blockquote(T('No Data'))}} 11 | {{#pass}} 12 |
    13 | 14 | 24 | -------------------------------------------------------------------------------- /views/vulns/vuln_refs_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/vulns/vuln_refs_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
    4 |
    5 |
    6 |
    7 | 8 | 9 | 10 |
    {{=response.title or request.application}}
    11 |
    12 |
    13 | {{=form}} 14 |
    15 |
    16 |
    17 |
    18 | -------------------------------------------------------------------------------- /views/vulns/vulndata_add.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'markitup_markmin.html'}} 3 | 4 |
    5 |
    6 |
    7 |
    8 | 9 | 10 | 11 |
    {{=response.title or request.application}}
    12 |
    13 |
    14 | {{=form}} 15 |
    16 |
    17 |
    18 |
    19 | -------------------------------------------------------------------------------- /views/vulns/vulndata_edit.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | {{include 'markitup_markmin.html'}} 3 | 4 |
    5 |
    6 |
    7 |
    8 | 9 | 10 | 11 |
    {{=response.title or request.application}}
    12 |
    13 |
    14 | {{=form}} 15 |
    16 |
    17 |
    18 |
    19 | 20 |
    21 | 22 |
    23 | 28 | 29 |
    30 | 31 |
    32 | {{=hosts}} 33 |
    34 | 35 |
    36 | {{=refs}} 37 |
    38 | 39 |
    40 | {{=exploits}} 41 |
    42 | 43 |
    44 |
    45 |
    -------------------------------------------------------------------------------- /views/web2py_ajax.html: -------------------------------------------------------------------------------- 1 | 8 | {{ 9 | response.files.insert(0,URL('static','js/jquery-1.8.1.min.js')) 10 | response.files.insert(3,URL('static','css/calendar.css')) 11 | response.files.insert(4,URL('static','js/calendar.js')) 12 | response.files.insert(5,URL('static','js/web2py.js')) 13 | response.include_meta() 14 | response.include_files() 15 | }} 16 | --------------------------------------------------------------------------------