v0.6-dev
This commit is contained in:
@@ -6,3 +6,8 @@ add alias to .zshrc or .basrc
|
|||||||
|
|
||||||
manuual
|
manuual
|
||||||
`nmap -oX /var/www/html/nmaprincesspi/scans/FILENMAME.xml --stylesheet /nmaprincesspi/xsl/princesspi-nmap.xsl`
|
`nmap -oX /var/www/html/nmaprincesspi/scans/FILENMAME.xml --stylesheet /nmaprincesspi/xsl/princesspi-nmap.xsl`
|
||||||
|
|
||||||
|
Designed to run on apache2 and php
|
||||||
|
|
||||||
|
need to make a .htpasswd file and put it somewhere
|
||||||
|
https://www.web2generators.com/apache-tools/htpasswd-generator
|
||||||
@@ -19,3 +19,9 @@ v0.5-dev
|
|||||||
added csrf protection
|
added csrf protection
|
||||||
bug fixes
|
bug fixes
|
||||||
layout improvements
|
layout improvements
|
||||||
|
|
||||||
|
v0.6-dev
|
||||||
|
added basic html auth (apache2)
|
||||||
|
cleaned up code
|
||||||
|
added nmap reference link
|
||||||
|
open xml and nmap reference links in new tab
|
||||||
@@ -26,6 +26,12 @@ body {
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#stickymenu {
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
h1.title {
|
h1.title {
|
||||||
color: #800080;
|
color: #800080;
|
||||||
font-size: 3em;
|
font-size: 3em;
|
||||||
|
|||||||
@@ -16,18 +16,21 @@ foreach($scans as $scan) {
|
|||||||
<link rel="stylesheet" href="css/nmaprincesspi.css">
|
<link rel="stylesheet" href="css/nmaprincesspi.css">
|
||||||
<script src="js/nmaprincesspi.js"></script>
|
<script src="js/nmaprincesspi.js"></script>
|
||||||
<link rel="icon" type="css/img/" href="css/img/favicon.ico">
|
<link rel="icon" type="css/img/" href="css/img/favicon.ico">
|
||||||
<title>Princess Pi's Magical Nmapprincesspi Thingy!</title>
|
<title>Princess Pi's Magical Nmaprincesspi!</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>Princess Pi's Magical Nmapprincesspi Thingy!</h1>
|
<h1>Princess Pi's Magical Nmaprincesspi!</h1>
|
||||||
<label for="nmapcmd">nmap command</label>
|
<a name="top"> </a>
|
||||||
<br>
|
<br>
|
||||||
|
<form id="cmdform">
|
||||||
|
<label for="nmapcmd">nmap command</label>
|
||||||
<input type="text" id="nmapcmd" name="nmapcmd">
|
<input type="text" id="nmapcmd" name="nmapcmd">
|
||||||
<input type="hidden" name="nonce" id="nonce" value="<?php echo $nonce; ?>">
|
<input type="hidden" name="nonce" id="nonce" value="<?php echo $nonce; ?>">
|
||||||
<input type="button" onclick="runNmapScan()" value="Go, Baby, Go!">
|
<input type="submit" value="Go, Baby, Go!">
|
||||||
|
</form>
|
||||||
<br>
|
<br>
|
||||||
<br>
|
<br>
|
||||||
<span class="fakelink" id="showlist" onclick="toggleShow('scanlist', 'showlist', 'Hide Previous Scans', 'Show Previous Scans')">Show Previous Scans</span>
|
<span class="fakelink" id="showlist">Show Previous Scans</span> | <a href="https://nmap.org/book/man.html" target="_blank">Nmap Reference</a>
|
||||||
<br><br>
|
<br><br>
|
||||||
<p class="hidden" id="link"></p>
|
<p class="hidden" id="link"></p>
|
||||||
<div id="scanlist" class="hidden">
|
<div id="scanlist" class="hidden">
|
||||||
@@ -38,5 +41,9 @@ foreach($scans as $scan) {
|
|||||||
<p>Progress<br>
|
<p>Progress<br>
|
||||||
<pre id="progressbox"></pre>
|
<pre id="progressbox"></pre>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="stickymenu">
|
||||||
|
<a href="#top">Top</a> | <a href="#bottom">Bottom</a>
|
||||||
|
</div>
|
||||||
|
<a name="bottom"> </a>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
+22
-9
@@ -11,25 +11,24 @@ function getID(ID) {
|
|||||||
|
|
||||||
function toggleShow(ID, htmlUpdateID=false, htmlUpdateShowing=false, htmlUpdateHidden=false) {
|
function toggleShow(ID, htmlUpdateID=false, htmlUpdateShowing=false, htmlUpdateHidden=false) {
|
||||||
let elemClasses = getID(ID).classList;
|
let elemClasses = getID(ID).classList;
|
||||||
|
var updating = false;
|
||||||
|
|
||||||
if(htmlUpdateID !== false && htmlUpdateShowing !== false && htmlUpdateHidden !== false) {
|
if(htmlUpdateID !== false && htmlUpdateShowing !== false && htmlUpdateHidden !== false) {
|
||||||
const updating = true;
|
updating = true;
|
||||||
updateElem = getID(htmlUpdateID).innerHTML;
|
var updateElem = getID(htmlUpdateID);
|
||||||
} else {
|
|
||||||
const updating = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(elemClasses.contains('hidden')) {
|
if(elemClasses.contains('hidden')) {
|
||||||
elemClasses.remove('hidden');
|
elemClasses.remove('hidden');
|
||||||
|
|
||||||
if(updating) {
|
if(updating === true) {
|
||||||
updateElem = htmlUpdateShowing;
|
updateElem.innerHTML = htmlUpdateShowing;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
elemClasses.add('hidden');
|
elemClasses.add('hidden');
|
||||||
|
|
||||||
if(updating) {
|
if(updating === true) {
|
||||||
updateElem = htmlUpdateHidden;
|
updateElem.innerHTML = htmlUpdateHidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -104,7 +103,7 @@ function xhrRunNmapScan(xhrRet) {
|
|||||||
clearInterval(pollInterval);
|
clearInterval(pollInterval);
|
||||||
}
|
}
|
||||||
|
|
||||||
getID('link').innerHTML = '<a href="'+xhrJson.webName+'">Scan Report ('+xhrJson.webName+')</a>';
|
getID('link').innerHTML = '<a href="'+xhrJson.webName+'" target="_blank">Scan Report ('+xhrJson.webName+')</a>';
|
||||||
getID('link').style.display = "inline";
|
getID('link').style.display = "inline";
|
||||||
|
|
||||||
getID('progressbox').innerHTML = '';
|
getID('progressbox').innerHTML = '';
|
||||||
@@ -133,3 +132,17 @@ function runNmapScan() {
|
|||||||
doXhr('run_scan.php', xhrRunNmapScan, 'POST', postData);
|
doXhr('run_scan.php', xhrRunNmapScan, 'POST', postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* listeners */
|
||||||
|
window.onload = function() {
|
||||||
|
let cmdform = getID('cmdform');
|
||||||
|
let showlist = getID('showlist');
|
||||||
|
|
||||||
|
cmdform.addEventListener('submit', function(event) {
|
||||||
|
event.preventDefault(); // prevents loading new page
|
||||||
|
runNmapScan();
|
||||||
|
});
|
||||||
|
|
||||||
|
showlist.addEventListener('click', function(event) {
|
||||||
|
toggleShow('scanlist', 'showlist', 'Hide Previous Scans', 'Show Previous Scans');
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -7,19 +7,25 @@ x bug on second scan in progress pre
|
|||||||
error handling
|
error handling
|
||||||
nmap fail
|
nmap fail
|
||||||
php script fail
|
php script fail
|
||||||
input validation fail
|
x input validation fail
|
||||||
containerize
|
x csrf validation fail
|
||||||
|
xhr fail
|
||||||
|
"finished" notification by parsing xml for end bits
|
||||||
|
keep alive check with ps aux type thingggg
|
||||||
x scans listing
|
x scans listing
|
||||||
x clear scans buttons
|
x clear scans buttons
|
||||||
x work on scans filename?
|
x work on scans filename?
|
||||||
fix perms
|
fix perms
|
||||||
auth system
|
x auth system
|
||||||
input/output validation
|
input/output validation
|
||||||
x escapeshellcmd
|
x escapeshellcmd
|
||||||
layout
|
layout
|
||||||
collums
|
collums
|
||||||
do not show scan list text when empty
|
do not show scan list text when empty
|
||||||
figure out some kinda command ran for anchor text on previous scans
|
figure out some kinda command ran for anchor text on previous scans
|
||||||
|
by parsing xml fmmmm
|
||||||
|
autoscroll
|
||||||
|
floating "top" button
|
||||||
work on princesspi-nmap.xsl
|
work on princesspi-nmap.xsl
|
||||||
clean up
|
clean up
|
||||||
minimize stuff
|
minimize stuff
|
||||||
@@ -28,3 +34,9 @@ work on princesspi-nmap.xsl
|
|||||||
green class
|
green class
|
||||||
padding on table items
|
padding on table items
|
||||||
centering text on table headers
|
centering text on table headers
|
||||||
|
containerize
|
||||||
|
nmap docker?
|
||||||
|
perms?
|
||||||
|
script with sticky bit?
|
||||||
|
custom docker?
|
||||||
|
docker inside docker?
|
||||||
+1
-1
@@ -1 +1 @@
|
|||||||
v0.5-dev
|
v0.6-dev
|
||||||
Reference in New Issue
Block a user