module PWN::Reports::URIBuster
def self.authors
def self.authors st.pentest@0dayinc.com>
def self.generate(opts = {})
def self.generate(opts = {}) ir_path].to_s if File.directory?(opts[:dir_path].to_s) Invalid Directory #{dir_path}" if dir_path.nil? s[:results_hash] lts_hash[:report_name] eport_name}.json", rate(results_hash) DOCTYPE HTML> co from https://0dayinc.com --> n" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABIXAAASFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAACJAgAAiSYAAIlbAACJcAAAiX0AAIlmAACJLQAAiQQAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAACJAAAAiS0AAIluAACJdwAAiXgAAIl+AACJeAAAiXQAAIk5AACJAQAAiQAAAAAAAAAAAAAAAAAAAAAAAACJAAAAiRgAAIlvAACJbQAAiXcAAIl7AACJcwAAiXEAAIl1AACJZwAAiR4AAIkAAACJAAAAAAAAAAAAAACJAAAAiQAAAIlEAACJfAAAiXIAAIlyAACJewAAiX4AAIl5AACJdQAAiXcAAIlIAACJAAAAiQAAAAAAAAAAAAAAiQAAAIkJAACJWQAAiXUAAIl9AACJdAAAiYYAAImLAACJdAAAiXkAAImNAACJfQAAiQwAAIkAAAAAAAAAAAAAAIkAAACJFQAAiWsAAIl2AACJfAAAiYIAAImCAACJfwAAiXYAAIl5AACJiQAAiYYAAIkWAACJAAAAAAAAAAAAAACJAAAAiSAAAIl2AACJeQAAiXkAAIl1AACJfwAAiYEAAIl8AACJbwAAiXoAAImBAACJFgAAiQAAAAAAAAAAAAAAiQAAAIkpAACJeAAAiXMAAIl3AACJeQAAiXUAAImAAACJfwAAiWYAAIl4AACJfwAAiR4AAIkAAAAAAAAAAAAAAIkAAACJKAAAiXkAAIlyAACJdQAAiXQAAIluAACJfAAAiXwAAIl3AACJewAAiXwAAIkvAACJAAAAAAAAAAAAAACJAAAAiSMAAIl4AACJdgAAiXsAAIl1AACJcQAAiXcAAIl6AACJeQAAiXoAAIl0AACJKQAAiQAAAAAAAAAAAAAAiQAAAIkXAACJaAAAiXgAAIl3AACJfAAAiXkAAIl3AACJZwAAiXcAAIl0AACJagAAiSgAAIkAAAAAAAAAAAAAAIkAAACJDgAAiV4AAIl5AACJbwAAiW4AAIl9AACJewAAiXcAAIl6AACJfQAAiW8AAIkWAACJAAAAAAAAAAAAAACJAAAAiQ0AAIllAACJewAAiXYAAIl4AACJdQAAiXUAAIl4AACJbQAAiXkAAIlNAACJAwAAiQAAAAAAAAAAAAAAiQAAAIkCAACJPQAAiXMAAIl2AACJeAAAiWgAAIlsAACJfQAAiXsAAIlwAACJGQAAiQAAAIkAAAAAAAAAAAAAAAAAAACJAAAAiQcAAIk4AACJXAAAiXoAAIl7AACJfAAAiYAAAIlsAACJJwAAiQMAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAACJAQAAiSsAAIluAACJewAAiXwAAIluAACJKgAAiQAAAIkAAAAAAAAAAAAAAAAA8A8AAPAHAADgBwAA4AcAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAHAADgBwAA8B8AAA==" type="image/x-icon" /> y: Verdana, Geneva, sans-serif; 11px; -color: #FFFFFF; 4B8A !important; 74DF; ation: none; 0404; ation: none; A9DB; ation: underline; 0B5E; ation: underline; %; cing:0px; { ut: fixed; lign: top; break-word !important; { -color: #F2F5A9 !important; ataTables, & FancyApps --> text/javascript" src="//code.jquery.com/jquery-3.6.0.min.js"></script> lesheet" type="text/css" href="//cdn.datatables.net/v/dt/dt-1.11.4/b-2.2.2/b-colvis-2.2.2/b-html5-2.2.2/b-print-2.2.2/cr-1.5.5/fc-4.0.1/fh-3.2.1/kt-2.6.4/r-2.2.9/rg-1.1.4/rr-1.2.8/sc-2.0.5/sp-1.4.0/sl-1.3.4/datatables.min.css"/> text/javascript" src="//cdn.datatables.net/v/dt/dt-1.11.4/b-2.2.2/b-colvis-2.2.2/b-html5-2.2.2/b-print-2.2.2/cr-1.5.5/fc-4.0.1/fh-3.2.1/kt-2.6.4/r-2.2.9/rg-1.1.4/rr-1.2.8/sc-2.0.5/sp-1.4.0/sl-1.3.4/datatables.min.js"></script> dy"> play:inline"> ps://github.com/0dayinc/pwn/tree/master">~ pwn www uri buster</a> /> _name"></h2><br /> ype="button" id="button">Rows Selected</button></div><br /> lumn(s):</b> ggle-vis" data-column="1" href="#">Request Time</a> | ggle-vis" data-column="2" href="#">URI</a> | ggle-vis" data-column="3" href="#">HTTP Method</a> | ggle-vis" data-column="4" href="#">HTTP Response Code</a> | ggle-vis" data-column="5" href="#">HTTP Response Length</a> | ggle-vis" data-column="6" href="#">HTTP Response Headers</a> | ggle-vis" data-column="7" href="#">HTTP Response Body</a> | wn_www_uri_buster_results" class="display" cellspacing="0"> /th> quest Time</th> I</th> TP Method</th> TP Response Code</th> TP Response Length</th> TP Response Headers</th> TP Response Body (300 bytes)</th> ables <tbody> --> tyEncode = $.fn.dataTable.render.text().display; ry_uri = ""; ready(function() { rt = 0; = $('#pwn_www_uri_buster_results').DataTable( { : true, ype": "full_numbers", allback": function ( oSettings ) { d to redo the counters if filtered or sorted */ Settings.bSorted || oSettings.bFiltered ) { ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ ) { 'td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 ); p to top when utilizing pagination Settings._iDisplayStart != oldStart ) { targetOffset = $('#pwn_body').offset().top; tml,body').animate({scrollTop: targetOffset}, 500); tart = oSettings._iDisplayStart; ect individual lines in a row lti_line_select tbody').on('click', 'tr', function () { is).toggleClass('highlighted'); $('#multi_line_select tr.highlighted').length > 0) { '#multi_line_select tr td button').attr('disabled', 'disabled'); Remove multi-line bug button se { '#multi_line_select tr td button').removeAttr('disabled'); Add multi-line bug button "#{report_name}.json", Render": true, fplitfpliS", th": false, ": [ a": null }, a": "request_timestamp", der": $.fn.dataTable.render.text() a": "http_uri", der": function (data, type, row, meta) { turn '<a href="' + data + '" target="_blank">' + data + '</a>'; a": "http_method", der": $.fn.dataTable.render.text() a": "http_resp_code", der": $.fn.dataTable.render.text() a": "http_resp_length", der": $.fn.dataTable.render.text() a": "http_resp_headers", der": $.fn.dataTable.render.text() a": "http_resp", der": $.fn.dataTable.render.text() Columns e-vis').on('click', function (e) { tDefault(); he column API object mn = table.column( $(this).attr('data-column') ); e the visibility isible( ! column.visible() ); pen bug for highlighted rows ;) ').click( function () { '#multi_line_select tr.highlighted').length +' row(s) highlighted'); ti_line_select() { all lines in a row www_uri_buster_results tbody').on('click', 'tr', function () { ).children('td').children('#multi_line_select').children('tbody').children('tr').toggleClass('highlighted'); ath}/#{report_name}.html", 'w') do |f| ort) => e
def self.help
def self.help ( path, results_hash