├── .resources └── imgs │ ├── br-flag-tiny.svg │ ├── interface.gif │ ├── logo.svg │ └── panorama-2.0.0.png ├── CHANGELOG.md ├── Dockerfile ├── LICENSE ├── LICENSES ├── bootstrap-v4.0.0.txt ├── crossfilter.txt ├── cvss-calculator-v3.txt ├── d3.v3.js.txt ├── dc-js.txt ├── django.txt ├── jquery.min.js ├── jquery.mobile.min.js ├── poppler.min.js └── python-3.txt ├── README.md ├── base ├── base │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── catalog │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── authViews.py │ ├── crudViews.py │ ├── dataConverterViews.py │ ├── dataViews.py │ ├── exportViews.py │ ├── fixturename │ │ └── riskQuestions-example.json │ ├── forms.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── __init__.py │ │ └── __pycache__ │ │ │ ├── 0001_initial.cpython-38.pyc │ │ │ └── __init__.cpython-38.pyc │ ├── models.py │ ├── searchViews.py │ ├── static │ │ ├── admin │ │ │ ├── css │ │ │ │ ├── autocomplete.css │ │ │ │ ├── base.css │ │ │ │ ├── changelists.css │ │ │ │ ├── dashboard.css │ │ │ │ ├── fonts.css │ │ │ │ ├── forms.css │ │ │ │ ├── login.css │ │ │ │ ├── nav_sidebar.css │ │ │ │ ├── responsive.css │ │ │ │ ├── responsive_rtl.css │ │ │ │ ├── rtl.css │ │ │ │ ├── vendor │ │ │ │ │ └── select2 │ │ │ │ │ │ ├── LICENSE-SELECT2.md │ │ │ │ │ │ ├── select2.css │ │ │ │ │ │ └── select2.min.css │ │ │ │ └── widgets.css │ │ │ ├── fonts │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── README.txt │ │ │ │ ├── Roboto-Bold-webfont.woff │ │ │ │ ├── Roboto-Light-webfont.woff │ │ │ │ └── Roboto-Regular-webfont.woff │ │ │ ├── img │ │ │ │ ├── LICENSE │ │ │ │ ├── README.txt │ │ │ │ ├── calendar-icons.svg │ │ │ │ ├── gis │ │ │ │ │ ├── move_vertex_off.svg │ │ │ │ │ └── move_vertex_on.svg │ │ │ │ ├── icon-addlink.svg │ │ │ │ ├── icon-alert.svg │ │ │ │ ├── icon-calendar.svg │ │ │ │ ├── icon-changelink.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-deletelink.svg │ │ │ │ ├── icon-no.svg │ │ │ │ ├── icon-unknown-alt.svg │ │ │ │ ├── icon-unknown.svg │ │ │ │ ├── icon-viewlink.svg │ │ │ │ ├── icon-yes.svg │ │ │ │ ├── inline-delete.svg │ │ │ │ ├── search.svg │ │ │ │ ├── selector-icons.svg │ │ │ │ ├── sorting-icons.svg │ │ │ │ ├── tooltag-add.svg │ │ │ │ └── tooltag-arrowright.svg │ │ │ └── js │ │ │ │ ├── SelectBox.js │ │ │ │ ├── SelectFilter2.js │ │ │ │ ├── actions.js │ │ │ │ ├── admin │ │ │ │ ├── DateTimeShortcuts.js │ │ │ │ └── RelatedObjectLookups.js │ │ │ │ ├── autocomplete.js │ │ │ │ ├── calendar.js │ │ │ │ ├── cancel.js │ │ │ │ ├── change_form.js │ │ │ │ ├── collapse.js │ │ │ │ ├── core.js │ │ │ │ ├── inlines.js │ │ │ │ ├── jquery.init.js │ │ │ │ ├── nav_sidebar.js │ │ │ │ ├── popup_response.js │ │ │ │ ├── prepopulate.js │ │ │ │ ├── prepopulate_init.js │ │ │ │ ├── urlify.js │ │ │ │ └── vendor │ │ │ │ ├── jquery │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── jquery.js │ │ │ │ └── jquery.min.js │ │ │ │ ├── select2 │ │ │ │ ├── LICENSE.md │ │ │ │ ├── i18n │ │ │ │ │ ├── af.js │ │ │ │ │ ├── ar.js │ │ │ │ │ ├── az.js │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── bn.js │ │ │ │ │ ├── bs.js │ │ │ │ │ ├── ca.js │ │ │ │ │ ├── cs.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── dsb.js │ │ │ │ │ ├── el.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── es.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── eu.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── gl.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── hi.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── hsb.js │ │ │ │ │ ├── hu.js │ │ │ │ │ ├── hy.js │ │ │ │ │ ├── id.js │ │ │ │ │ ├── is.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── ja.js │ │ │ │ │ ├── ka.js │ │ │ │ │ ├── km.js │ │ │ │ │ ├── ko.js │ │ │ │ │ ├── lt.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── mk.js │ │ │ │ │ ├── ms.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── ne.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── ps.js │ │ │ │ │ ├── pt-BR.js │ │ │ │ │ ├── pt.js │ │ │ │ │ ├── ro.js │ │ │ │ │ ├── ru.js │ │ │ │ │ ├── sk.js │ │ │ │ │ ├── sl.js │ │ │ │ │ ├── sq.js │ │ │ │ │ ├── sr-Cyrl.js │ │ │ │ │ ├── sr.js │ │ │ │ │ ├── sv.js │ │ │ │ │ ├── th.js │ │ │ │ │ ├── tk.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── vi.js │ │ │ │ │ ├── zh-CN.js │ │ │ │ │ └── zh-TW.js │ │ │ │ ├── select2.full.js │ │ │ │ └── select2.full.min.js │ │ │ │ └── xregexp │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── xregexp.js │ │ │ │ └── xregexp.min.js │ │ ├── css │ │ │ ├── bootstrap.min.css │ │ │ ├── bootstrap.min.css.map │ │ │ ├── catalog.css │ │ │ ├── dc.css │ │ │ └── dc.js.map │ │ ├── cvss │ │ │ ├── calculator │ │ │ │ ├── cvsscalc30.js │ │ │ │ └── cvsscalc30_helptext.js │ │ │ └── identity │ │ │ │ └── cvss_web.png │ │ ├── django_tinymce │ │ │ └── init_tinymce.js │ │ ├── imgs │ │ │ ├── artifacts │ │ │ │ ├── br-flag-tiny.svg │ │ │ │ ├── favicon.png │ │ │ │ ├── favicon.svg │ │ │ │ ├── logo-grayscale.svg │ │ │ │ └── logo.svg │ │ │ └── cvss │ │ │ │ └── identity │ │ │ │ └── cvss_web.png │ │ ├── js │ │ │ ├── bootstrap.min.js │ │ │ ├── bootstrap.min.js.map │ │ │ ├── crossfilter.js │ │ │ ├── cvsscalc30.js │ │ │ ├── cvsscalc30_helptext.js │ │ │ ├── d3.v3.js │ │ │ ├── dc.js │ │ │ ├── home-generator.js │ │ │ ├── html.helper.js │ │ │ ├── jquery.min.js │ │ │ ├── jquery.mobile.min.js │ │ │ ├── panorama-generator.js │ │ │ ├── popper.min.js │ │ │ ├── popper.min.js.map │ │ │ └── risk_calculator.js │ │ └── tinymce │ │ │ ├── changelog.txt │ │ │ ├── custom.js │ │ │ ├── icons │ │ │ └── default │ │ │ │ └── icons.min.js │ │ │ ├── jquery.tinymce.min.js │ │ │ ├── langs │ │ │ ├── ar.js │ │ │ ├── bg_BG.js │ │ │ ├── ca.js │ │ │ ├── cs.js │ │ │ ├── cy.js │ │ │ ├── da.js │ │ │ ├── de.js │ │ │ ├── es.js │ │ │ ├── es_ES.js │ │ │ ├── es_MX.js │ │ │ ├── eu.js │ │ │ ├── fa.js │ │ │ ├── fa_IR.js │ │ │ ├── fi.js │ │ │ ├── fr_FR.js │ │ │ ├── gl.js │ │ │ ├── he_IL.js │ │ │ ├── hr.js │ │ │ ├── hu_HU.js │ │ │ ├── id.js │ │ │ ├── it.js │ │ │ ├── it_IT.js │ │ │ ├── ja.js │ │ │ ├── kk.js │ │ │ ├── ko_KR.js │ │ │ ├── lt.js │ │ │ ├── nb_NO.js │ │ │ ├── nl.js │ │ │ ├── pl.js │ │ │ ├── pt_BR.js │ │ │ ├── pt_PT.js │ │ │ ├── readme.md │ │ │ ├── ro.js │ │ │ ├── ro_RO.js │ │ │ ├── ru.js │ │ │ ├── sk.js │ │ │ ├── sl.js │ │ │ ├── sl_SI.js │ │ │ ├── sv_SE.js │ │ │ ├── ta.js │ │ │ ├── ta_IN.js │ │ │ ├── th_TH.js │ │ │ ├── tr.js │ │ │ ├── tr_TR.js │ │ │ ├── uk.js │ │ │ ├── zh_CN.js │ │ │ └── zh_TW.js │ │ │ ├── license.txt │ │ │ ├── plugins │ │ │ ├── advlist │ │ │ │ └── plugin.min.js │ │ │ ├── anchor │ │ │ │ └── plugin.min.js │ │ │ ├── autolink │ │ │ │ └── plugin.min.js │ │ │ ├── autoresize │ │ │ │ └── plugin.min.js │ │ │ ├── autosave │ │ │ │ └── plugin.min.js │ │ │ ├── bbcode │ │ │ │ └── plugin.min.js │ │ │ ├── charmap │ │ │ │ └── plugin.min.js │ │ │ ├── code │ │ │ │ └── plugin.min.js │ │ │ ├── codesample │ │ │ │ └── plugin.min.js │ │ │ ├── colorpicker │ │ │ │ └── plugin.min.js │ │ │ ├── contextmenu │ │ │ │ └── plugin.min.js │ │ │ ├── directionality │ │ │ │ └── plugin.min.js │ │ │ ├── emoticons │ │ │ │ ├── js │ │ │ │ │ ├── emojis.js │ │ │ │ │ └── emojis.min.js │ │ │ │ └── plugin.min.js │ │ │ ├── fullpage │ │ │ │ └── plugin.min.js │ │ │ ├── fullscreen │ │ │ │ └── plugin.min.js │ │ │ ├── help │ │ │ │ └── plugin.min.js │ │ │ ├── hr │ │ │ │ └── plugin.min.js │ │ │ ├── image │ │ │ │ └── plugin.min.js │ │ │ ├── imagetools │ │ │ │ └── plugin.min.js │ │ │ ├── importcss │ │ │ │ └── plugin.min.js │ │ │ ├── insertdatetime │ │ │ │ └── plugin.min.js │ │ │ ├── legacyoutput │ │ │ │ └── plugin.min.js │ │ │ ├── link │ │ │ │ └── plugin.min.js │ │ │ ├── lists │ │ │ │ └── plugin.min.js │ │ │ ├── media │ │ │ │ └── plugin.min.js │ │ │ ├── nonbreaking │ │ │ │ └── plugin.min.js │ │ │ ├── noneditable │ │ │ │ └── plugin.min.js │ │ │ ├── pagebreak │ │ │ │ └── plugin.min.js │ │ │ ├── paste │ │ │ │ └── plugin.min.js │ │ │ ├── preview │ │ │ │ └── plugin.min.js │ │ │ ├── print │ │ │ │ └── plugin.min.js │ │ │ ├── quickbars │ │ │ │ └── plugin.min.js │ │ │ ├── save │ │ │ │ └── plugin.min.js │ │ │ ├── searchreplace │ │ │ │ └── plugin.min.js │ │ │ ├── spellchecker │ │ │ │ └── plugin.min.js │ │ │ ├── tabfocus │ │ │ │ └── plugin.min.js │ │ │ ├── table │ │ │ │ └── plugin.min.js │ │ │ ├── template │ │ │ │ └── plugin.min.js │ │ │ ├── textcolor │ │ │ │ └── plugin.min.js │ │ │ ├── textpattern │ │ │ │ └── plugin.min.js │ │ │ ├── toc │ │ │ │ └── plugin.min.js │ │ │ ├── visualblocks │ │ │ │ └── plugin.min.js │ │ │ ├── visualchars │ │ │ │ └── plugin.min.js │ │ │ └── wordcount │ │ │ │ └── plugin.min.js │ │ │ ├── skins │ │ │ ├── content │ │ │ │ ├── dark │ │ │ │ │ └── content.min.css │ │ │ │ ├── default │ │ │ │ │ └── content.min.css │ │ │ │ ├── document │ │ │ │ │ └── content.min.css │ │ │ │ └── writer │ │ │ │ │ └── content.min.css │ │ │ └── ui │ │ │ │ ├── oxide-dark │ │ │ │ ├── content.inline.min.css │ │ │ │ ├── content.min.css │ │ │ │ ├── content.mobile.min.css │ │ │ │ ├── fonts │ │ │ │ │ └── tinymce-mobile.woff │ │ │ │ ├── skin.min.css │ │ │ │ ├── skin.mobile.min.css │ │ │ │ └── tinymce-mobile.woff │ │ │ │ └── oxide │ │ │ │ ├── content.inline.min.css │ │ │ │ ├── content.min.css │ │ │ │ ├── content.mobile.min.css │ │ │ │ ├── fonts │ │ │ │ └── tinymce-mobile.woff │ │ │ │ ├── skin.min.css │ │ │ │ ├── skin.mobile.min.css │ │ │ │ └── tinymce-mobile.woff │ │ │ ├── themes │ │ │ ├── mobile │ │ │ │ └── theme.min.js │ │ │ └── silver │ │ │ │ └── theme.min.js │ │ │ └── tinymce.min.js │ ├── templates │ │ └── catalog │ │ │ ├── add.html │ │ │ ├── converter.html │ │ │ ├── delete.html │ │ │ ├── detail.html │ │ │ ├── fastupdate.html │ │ │ ├── home.html │ │ │ ├── index.html │ │ │ ├── login.html │ │ │ ├── panorama.html │ │ │ ├── search.html │ │ │ ├── update.html │ │ │ └── upload.html │ ├── tests.py │ ├── uploadFileViews.py │ ├── urls.py │ └── views.py ├── manage.py └── run_cherrypy.py ├── requirements.txt ├── run.sh ├── setup.sh ├── test ├── data │ ├── data-md.json │ ├── data-sm.json │ └── riskQuestions-example.json └── tools │ └── testDataGenerator.py └── tools ├── deployDocker.sh ├── genSessionKey.py ├── nessus2catalog.py └── openvas2catalog.py /.resources/imgs/interface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daavelino/vulnerability-catalog/61e0db9cc4656a16847ec635a4cac3e9a6c67dd4/.resources/imgs/interface.gif -------------------------------------------------------------------------------- /.resources/imgs/panorama-2.0.0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/daavelino/vulnerability-catalog/61e0db9cc4656a16847ec635a4cac3e9a6c67dd4/.resources/imgs/panorama-2.0.0.png -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## vulnerability-catalog-3.0.0 2 | 3 | 4 | **Changes since the previous release:** 5 | - Removed support for automatic setup on Windows machines: 6 | It still works on Windows but the setup needs to be done manually. 7 | - New layout for the project: 8 | Simplified the old directory structure for better maintainance. 9 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Check https://github.com/daavelino/vulnerability-catalog/wiki/Using-Docker-to-run-Catalog 2 | 3 | # Use an official Python 3 runtime as a parent image 4 | FROM python:3.6 5 | 6 | # Set apps home directory: 7 | WORKDIR . 8 | 9 | # Adds the application code to the image: 10 | ADD . ${APP_DIR} 11 | 12 | # Build the project structure without Python's Virtual Environment 13 | RUN apt-get update && apt-get install -y libxml2-dev libxmlsec1-dev 14 | RUN python setup.py build-novenv 15 | 16 | # Setup Admin user. Change it properly: 17 | ENV DJANGO_SU_NAME=admin 18 | ENV DJANGO_SU_EMAIL=admin@example.com 19 | ENV DJANGO_SU_PASSWORD=vcatalog 20 | 21 | # Server variables 22 | ENV HOSTNAME=localhost 23 | ENV PORT=8000 24 | 25 | RUN echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser('${DJANGO_SU_NAME}', '${DJANGO_SU_EMAIL}', '${DJANGO_SU_PASSWORD}')" | python base/manage.py shell 26 | 27 | # Make port 8000 available to the world outside this container: 28 | EXPOSE 8000 29 | 30 | # Lauch Catalog. Make sure to set IP address and port properly: 31 | WORKDIR base 32 | CMD ["./run.sh","${HOSTNAME}:${PORT}"] 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Daniel Avelino 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LICENSES/bootstrap-v4.0.0.txt: -------------------------------------------------------------------------------- 1 | As stated at: 2 | 3 | https://github.com/twbs/bootstrap/blob/master/LICENSE 4 | 5 | The MIT License (MIT) 6 | 7 | Copyright (c) 2011-2016 Twitter, Inc. 8 | 9 | Permission is hereby granted, free of charge, to any person obtaining a copy 10 | of this software and associated documentation files (the "Software"), to deal 11 | in the Software without restriction, including without limitation the rights 12 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the Software is 14 | furnished to do so, subject to the following conditions: 15 | 16 | The above copyright notice and this permission notice shall be included in 17 | all copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | THE SOFTWARE. 26 | -------------------------------------------------------------------------------- /LICENSES/crossfilter.txt: -------------------------------------------------------------------------------- 1 | As stated at: 2 | 3 | https://github.com/square/crossfilter/blob/master/LICENSE 4 | 5 | Copyright 2012 Square, Inc. 6 | 7 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 8 | this file except in compliance with the License. You may obtain a copy of the 9 | License at 10 | 11 | http://www.apache.org/licenses/LICENSE-2.0 12 | 13 | Unless required by applicable law or agreed to in writing, software distributed 14 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 15 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 16 | specific language governing permissions and limitations under the License. 17 | -------------------------------------------------------------------------------- /LICENSES/d3.v3.js.txt: -------------------------------------------------------------------------------- 1 | As stated at: 2 | 3 | https://github.com/d3/d3/blob/master/LICENSE 4 | 5 | Copyright 2010-2017 Mike Bostock 6 | All rights reserved. 7 | 8 | Redistribution and use in source and binary forms, with or without modification, 9 | are permitted provided that the following conditions are met: 10 | 11 | * Redistributions of source code must retain the above copyright notice, this 12 | list of conditions and the following disclaimer. 13 | 14 | * Redistributions in binary form must reproduce the above copyright notice, 15 | this list of conditions and the following disclaimer in the documentation 16 | and/or other materials provided with the distribution. 17 | 18 | * Neither the name of the author nor the names of contributors may be used to 19 | endorse or promote products derived from this software without specific prior 20 | written permission. 21 | 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 23 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 24 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 26 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 27 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 29 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 31 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | -------------------------------------------------------------------------------- /LICENSES/django.txt: -------------------------------------------------------------------------------- 1 | 2 | As stated at: 3 | 4 | https://github.com/django/djangoproject.com/blob/master/LICENSE 5 | 6 | 7 | 8 | Copyright (c) Django Software Foundation and individual contributors. 9 | All rights reserved. 10 | 11 | Redistribution and use in source and binary forms, with or without modification, 12 | are permitted provided that the following conditions are met: 13 | 14 | 1. Redistributions of source code must retain the above copyright notice, 15 | this list of conditions and the following disclaimer. 16 | 17 | 2. Redistributions in binary form must reproduce the above copyright 18 | notice, this list of conditions and the following disclaimer in the 19 | documentation and/or other materials provided with the distribution. 20 | 21 | 3. Neither the name of Django nor the names of its contributors may be used 22 | to endorse or promote products derived from this software without 23 | specific prior written permission. 24 | 25 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 26 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 27 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 28 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 29 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 30 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 32 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 33 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 34 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35 | -------------------------------------------------------------------------------- /LICENSES/jquery.min.js: -------------------------------------------------------------------------------- 1 | As stated at: 2 | 3 | https://github.com/jquery/jquery/blob/master/LICENSE.txt 4 | 5 | Copyright JS Foundation and other contributors, https://js.foundation/ 6 | 7 | This software consists of voluntary contributions made by many 8 | individuals. For exact contribution history, see the revision history 9 | available at https://github.com/jquery/jquery 10 | 11 | The following license applies to all parts of this software except as 12 | documented below: 13 | 14 | ==== 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining 17 | a copy of this software and associated documentation files (the 18 | "Software"), to deal in the Software without restriction, including 19 | without limitation the rights to use, copy, modify, merge, publish, 20 | distribute, sublicense, and/or sell copies of the Software, and to 21 | permit persons to whom the Software is furnished to do so, subject to 22 | the following conditions: 23 | 24 | The above copyright notice and this permission notice shall be 25 | included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 28 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 29 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 30 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 31 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 32 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 33 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 34 | 35 | ==== 36 | 37 | All files located in the node_modules and external directories are 38 | externally maintained libraries used by this software which have their 39 | own licenses; we recommend you read them, as their terms may differ from 40 | the terms above. 41 | 42 | -------------------------------------------------------------------------------- /LICENSES/jquery.mobile.min.js: -------------------------------------------------------------------------------- 1 | As stated at: 2 | 3 | https://github.com/jquery/jquery/blob/master/LICENSE.txt 4 | 5 | Copyright JS Foundation and other contributors, https://js.foundation/ 6 | 7 | This software consists of voluntary contributions made by many 8 | individuals. For exact contribution history, see the revision history 9 | available at https://github.com/jquery/jquery 10 | 11 | The following license applies to all parts of this software except as 12 | documented below: 13 | 14 | ==== 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining 17 | a copy of this software and associated documentation files (the 18 | "Software"), to deal in the Software without restriction, including 19 | without limitation the rights to use, copy, modify, merge, publish, 20 | distribute, sublicense, and/or sell copies of the Software, and to 21 | permit persons to whom the Software is furnished to do so, subject to 22 | the following conditions: 23 | 24 | The above copyright notice and this permission notice shall be 25 | included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 28 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 29 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 30 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 31 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 32 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 33 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 34 | 35 | ==== 36 | 37 | All files located in the node_modules and external directories are 38 | externally maintained libraries used by this software which have their 39 | own licenses; we recommend you read them, as their terms may differ from 40 | the terms above. 41 | 42 | -------------------------------------------------------------------------------- /LICENSES/poppler.min.js: -------------------------------------------------------------------------------- 1 | As stated at: 2 | 3 | https://github.com/FezVrasta/popper.js/blob/master/LICENSE.md 4 | 5 | The MIT License (MIT) 6 | ===================== 7 | 8 | Copyright © 2016 Federico Zivolo and contributors 9 | 10 | Permission is hereby granted, free of charge, to any person 11 | obtaining a copy of this software and associated documentation 12 | files (the “Software”), to deal in the Software without 13 | restriction, including without limitation the rights to use, 14 | copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | copies of the Software, and to permit persons to whom the 16 | Software is furnished to do so, subject to the following 17 | conditions: 18 | 19 | The above copyright notice and this permission notice shall be 20 | included in all copies or substantial portions of the Software. 21 | 22 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, 23 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 24 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 26 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 27 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 29 | OTHER DEALINGS IN THE SOFTWARE. 30 | -------------------------------------------------------------------------------- /LICENSES/python-3.txt: -------------------------------------------------------------------------------- 1 | As stated at: 2 | 3 | https://docs.python.org/3/license.html 4 | 5 | 6 | 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and 7 | the Individual or Organization ("Licensee") accessing and otherwise using Python 8 | 3.6.4 software in source or binary form and its associated documentation. 9 | 10 | 2. Subject to the terms and conditions of this License Agreement, PSF hereby 11 | grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, 12 | analyze, test, perform and/or display publicly, prepare derivative works, 13 | distribute, and otherwise use Python 3.6.4 alone or in any derivative 14 | version, provided, however, that PSF's License Agreement and PSF's notice of 15 | copyright, i.e., "Copyright © 2001-2018 Python Software Foundation; All Rights 16 | Reserved" are retained in Python 3.6.4 alone or in any derivative version 17 | prepared by Licensee. 18 | 19 | 3. In the event Licensee prepares a derivative work that is based on or 20 | incorporates Python 3.6.4 or any part thereof, and wants to make the 21 | derivative work available to others as provided herein, then Licensee hereby 22 | agrees to include in any such work a brief summary of the changes made to Python 23 | 3.6.4. 24 | 25 | 4. PSF is making Python 3.6.4 available to Licensee on an "AS IS" basis. 26 | PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF 27 | EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR 28 | WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE 29 | USE OF PYTHON 3.6.4 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 30 | 31 | 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.6.4 32 | FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF 33 | MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.6.4, OR ANY DERIVATIVE 34 | THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 35 | 36 | 6. This License Agreement will automatically terminate upon a material breach of 37 | its terms and conditions. 38 | 39 | 7. Nothing in this License Agreement shall be deemed to create any relationship 40 | of agency, partnership, or joint venture between PSF and Licensee. This License 41 | Agreement does not grant permission to use PSF trademarks or trade name in a 42 | trademark sense to endorse or promote products or services of Licensee, or any 43 | third party. 44 | 45 | 8. By copying, installing or otherwise using Python 3.6.4, Licensee agrees 46 | to be bound by the terms and conditions of this License Agreement. 47 | 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
39 |
41 |
42 |
43 | ### Motivation
44 |
45 | The idea to start this effort came from my experience trying to keep track of vulnerabilities during the Olympic and Paralympic Games at Rio 2016 - The Rio de Janeiro Olympics. During that time, I realized three hard things about vulnerability management:
46 |
47 | 1. it is hard to **centralize all information** we got from vulnerability reports, assessments, pentests, user/peers report in a consistent way.
48 | 2. it is hard to put **relevant information**, like risks and severity, **in a common (and normalized) base**.
49 | 3. it is hard to **visualize and get insights** about the enviroment **when we have multiple and diffuse sources of data**, comming from .pdf, .xslx, .doc files or even by e-mail or other channels.
50 |
51 | So, Vulnerability Catalog try to make things a little bit easier. With Catalog, we can unify, put data into a normal basis and manage vulnerabilities better than if you try to do this by using sheets or search and reading reports one-by-one each time you need an information.
52 |
53 | ### Deploying to production
54 |
55 | Please check the [wiki](https://github.com/daavelino/vulnerability-catalog/wiki/Deploying-to-production) for a step-by-step approach.
56 |
57 | ### Many many thanks to
58 |
59 | * Victor Carvalho (https://www.behance.net/VictorjCarvalho), for logo design.
60 | * Barbara Camara for suggestions and point me the right persons.
61 | * Andrea Fabrete, for important improvement insights and suggestions.
62 | * Beatriz Lima, for watching changes and suggest new ideas.
63 | * Paulo Caldas, for stress the project concept, making it more mature.
64 | * Leandro Silva, for testing and report great feedback.
65 |
66 | and others (you know who you are) for important feedbacks and to keep me straight in my path.
67 |
68 | ---
69 | **License:** MIT License. **Author:** Daniel Avelino
70 |
71 |
72 | Proudly made in .
73 |
]*>/gi,"[quote]"),o(/<\/blockquote>/gi,"[/quote]"),o(/':" ";n.insertContent(function(n,e){for(var o="",t=0;t
/gi,"\n"),o(/
/gi,"\n"),o(/
/gi,"\n"),o(//gi,""),o(/<\/p>/gi,"\n"),o(/ |\u00a0/gi," "),o(/"/gi,'"'),o(/</gi,"<"),o(/>/gi,">"),o(/&/gi,"&"),t},i=function(t){t=e.trim(t);var o=function(o,e){t=t.replace(o,e)};return o(/\n/gi,"
"),o(/\[b\]/gi,""),o(/\[\/b\]/gi,""),o(/\[i\]/gi,""),o(/\[\/i\]/gi,""),o(/\[u\]/gi,""),o(/\[\/u\]/gi,""),o(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'$2'),o(/\[url\](.*?)\[\/url\]/gi,'$1'),o(/\[img\](.*?)\[\/img\]/gi,''),o(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2'),o(/\[code\](.*?)\[\/code\]/gi,'$1 '),o(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 '),t};!function n(){o.add("bbcode",function(o){o.on("BeforeSetContent",function(o){o.content=i(o.content)}),o.on("PostProcess",function(o){o.set&&(o.content=i(o.content)),o.get&&(o.content=t(o.content))})})}()}(); -------------------------------------------------------------------------------- /base/catalog/static/tinymce/plugins/code/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.0.8 (2019-06-18) 8 | */ 9 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e,n){e.focus(),e.undoManager.transact(function(){e.setContent(n)}),e.selection.setCursorLocation(),e.nodeChanged()},o=function(e){return e.getContent({source_view:!0})},n=function(n){var e=o(n);n.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:e},onSubmit:function(e){t(n,e.getData().code),e.close()}})},c=function(e){e.addCommand("mceCodeEditor",function(){n(e)})},i=function(e){e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:function(){return n(e)}}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:function(){return n(e)}})};!function u(){e.add("code",function(e){return c(e),i(e),{}})}()}(); -------------------------------------------------------------------------------- /base/catalog/static/tinymce/plugins/colorpicker/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.0.8 (2019-06-18) 8 | */ 9 | !function(o){"use strict";var i=tinymce.util.Tools.resolve("tinymce.PluginManager");!function n(){i.add("colorpicker",function(){o.console.warn("Color picker plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window); -------------------------------------------------------------------------------- /base/catalog/static/tinymce/plugins/contextmenu/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.0.8 (2019-06-18) 8 | */ 9 | !function(n){"use strict";var o=tinymce.util.Tools.resolve("tinymce.PluginManager");!function e(){o.add("contextmenu",function(){n.console.warn("Context menu plugin is now built in to the core editor, please remove it from your editor configuration")})}()}(window); -------------------------------------------------------------------------------- /base/catalog/static/tinymce/plugins/directionality/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.0.8 (2019-06-18) 8 | */ 9 | !function(c){"use strict";var n,t,e,r,o=tinymce.util.Tools.resolve("tinymce.PluginManager"),u=tinymce.util.Tools.resolve("tinymce.util.Tools"),i=function(n,t){var e,r=n.dom,o=n.selection.getSelectedBlocks();o.length&&(e=r.getAttrib(o[0],"dir"),u.each(o,function(n){r.getParent(n.parentNode,'*[dir="'+t+'"]',r.getRoot())||r.setAttrib(n,"dir",e!==t?t:null)}),n.nodeChanged())},f=function(n){n.addCommand("mceDirectionLTR",function(){i(n,"ltr")}),n.addCommand("mceDirectionRTL",function(){i(n,"rtl")})},d=function(n){return function(){return n}},l=d(!1),a=d(!0),N=l,m=a,s=function(){return T},T=(r={fold:function(n,t){return n()},is:N,isSome:N,isNone:m,getOr:e=function(n){return n},getOrThunk:t=function(n){return n()},getOrDie:function(n){throw new Error(n||"error: getOrDie called on none.")},getOrNull:function(){return null},getOrUndefined:function(){return undefined},or:e,orThunk:t,map:s,ap:s,each:function(){},bind:s,flatten:s,exists:N,forall:m,filter:s,equals:n=function(n){return n.isNone()},equals_:n,toArray:function(){return[]},toString:d("none()")},Object.freeze&&Object.freeze(r),r),g=function(e){var n=function(){return e},t=function(){return o},r=function(n){return n(e)},o={fold:function(n,t){return t(e)},is:function(n){return e===n},isSome:m,isNone:N,getOr:n,getOrThunk:n,getOrDie:n,getOrNull:n,getOrUndefined:n,or:t,orThunk:t,map:function(n){return g(n(e))},ap:function(n){return n.fold(s,function(n){return g(n(e))})},each:function(n){n(e)},bind:r,flatten:n,exists:r,forall:r,filter:function(n){return n(e)?o:T},equals:function(n){return n.is(e)},equals_:function(n,t){return n.fold(N,function(n){return t(e,n)})},toArray:function(){return[e]},toString:function(){return"some("+e+")"}};return o},O=function(n){return null===n||n===undefined?T:g(n)},E=function(n){if(null===n||n===undefined)throw new Error("Node cannot be null or undefined");return{dom:d(n)}},y={fromHtml:function(n,t){var e=(t||c.document).createElement("div");if(e.innerHTML=n,!e.hasChildNodes()||1
")})},t=function(n){n.ui.registry.addButton("hr",{icon:"horizontal-rule",tooltip:"Horizontal line",onAction:function(){return n.execCommand("InsertHorizontalRule")}}),n.ui.registry.addMenuItem("hr",{icon:"horizontal-rule",text:"Horizontal line",onAction:function(){return n.execCommand("InsertHorizontalRule")}})};!function e(){n.add("hr",function(n){o(n),t(n)})}()}(); -------------------------------------------------------------------------------- /base/catalog/static/tinymce/plugins/insertdatetime/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.0.8 (2019-06-18) 8 | */ 9 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(e){return e.getParam("insertdatetime_timeformat",e.translate("%H:%M:%S"))},r=function(e){return e.getParam("insertdatetime_formats",["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"])},t=function(e){return e.getParam("insertdatetime_dateformat",e.translate("%Y-%m-%d"))},a=n,i=r,o=function(e){var t=r(e);return 0 '+n+"")}else e.insertContent(f(e,t));var i,o,u,c,m},g=f,y=function(e){e.addCommand("mceInsertDate",function(){p(e,t(e))}),e.addCommand("mceInsertTime",function(){p(e,a(e))})},M=tinymce.util.Tools.resolve("tinymce.util.Tools"),S=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return S(n())}}},v=function(n){var t=i(n),r=S(o(n));n.ui.registry.addSplitButton("insertdatetime",{icon:"insert-time",tooltip:"Insert date/time",select:function(e){return e===r.get()},fetch:function(e){e(M.map(t,function(e){return{type:"choiceitem",text:g(n,e),value:e}}))},onAction:function(){for(var e=[],t=0;t
"+c()+"
"):e.insertContent(c())})},m=function(n){n.on("ResolveName",function(e){"IMG"===e.target.nodeName&&n.dom.hasClass(e.target,u())&&(e.name="pagebreak")})},s=function(e){e.ui.registry.addButton("pagebreak",{icon:"page-break",tooltip:"Page break",onAction:function(){return e.execCommand("mcePageBreak")}}),e.ui.registry.addMenuItem("pagebreak",{text:"Page break",icon:"page-break",onAction:function(){return e.execCommand("mcePageBreak")}})};!function l(){e.add("pagebreak",function(e){g(e),s(e),o(e),m(e)})}()}(); -------------------------------------------------------------------------------- /base/catalog/static/tinymce/plugins/preview/plugin.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) Tiny Technologies, Inc. All rights reserved. 3 | * Licensed under the LGPL or a commercial license. 4 | * For LGPL see License.txt in the project root for license information. 5 | * For commercial licenses see https://www.tiny.cloud/ 6 | * 7 | * Version: 5.0.8 (2019-06-18) 8 | */ 9 | !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=function(e){return e.getParam("content_style","")},m=function(e){return e.getParam("content_css_cors",!1,"boolean")},i=function(t){var n="",i=t.dom.encode,e=l(t);n+='