NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Owasp top 10 fetcher // @namespace Violentmonkey Scripts // @match https://owasp.org/Top10/* // @grant none // @version 1.0 // @author BiCH0 // @description 4/9/2024, 5:58:03 PM // @license MIT // @copyright 2024, BiCH0 (https://openuserjs.org/users/BiCH0) // ==/UserScript== /*jshint esversion: 8 */ var sleep = function(ms){ return new Promise(resolve => setTimeout(resolve, ms)); }; const functions = ["fetchCWEs"] window.fetchCWEs = async function (btn){ console.log("Fetching CWEs..."); let list = document.getElementById("list-of-mapped-cwes"); let codes = ""; list = list.parentNode.getElementsByTagName("a"); for (let i=0; i < list.length; i++){ let split = list[i].href.split("/"); if (split[2] == "cwe.mitre.org"){ codes+=split[split.length-1].split(".")[0]+", "; } } codes=codes.slice(0,-2); navigator.clipboard.writeText(codes); if (codes != ""){ btn.value = "Values copied to clipboard"; }else{ btn.value = "Try again"; } await sleep(2000); btn.value = "fetchCWEs"; } function drawOverlay (){ let buttons = ""; functions.forEach(fn => { buttons+=`<input type='button' onclick='${fn}(this)' value='${fn}' style='background: red; color: white; border-radius: 5px'>`; }); document.body.innerHTML+=`<div id='violent-buttons' style='position: fixed;left: 35%;top: 15px;z-index: 2000;'>${buttons}</div>`; } drawOverlay()