mirror of
https://github.com/SpacehuhnTech/esp8266_deauther.git
synced 2025-12-21 14:09:59 +01:00
New Web Interface
Completly reworked design! I also improved the way you add/clone SSIDs to the list
This commit is contained in:
@@ -18,11 +18,15 @@ function compare(a, b) {
|
||||
}
|
||||
|
||||
function getEncryption(num) {
|
||||
/*
|
||||
if (num == 8) return "WPA*";
|
||||
else if (num == 4) return "WPA2";
|
||||
else if (num == 2) return "WPA";
|
||||
else if (num == 7) return "none";
|
||||
else if (num == 5) return "WEP";
|
||||
*/
|
||||
if (num == 7) return " ";
|
||||
else return "🔒";
|
||||
}
|
||||
|
||||
function getResults() {
|
||||
@@ -38,7 +42,7 @@ function getResults() {
|
||||
|
||||
var tr = '';
|
||||
if (res.aps.length > 0) {
|
||||
tr += '<tr><th>Ch</th><th>SSID</th><th>RSSI</th><th>Encrypt.</th><th>Select</th></tr>';
|
||||
tr += '<tr><th>Ch</th><th>SSID</th><th> </th><th>RSSI</th><th>Select</th></tr>';
|
||||
}
|
||||
|
||||
for (var i = 0; i < res.aps.length; i++) {
|
||||
@@ -47,14 +51,20 @@ function getResults() {
|
||||
else tr += '<tr>';
|
||||
tr += '<td>' + res.aps[i].c + '</td>';
|
||||
tr += '<td>' + res.aps[i].ss + '</td>';
|
||||
tr += '<td>' + res.aps[i].r + ' <meter value="' + res.aps[i].r + '" max="-30" min="-100" low="-80" high="-60" optimum="-50"></meter></td>';
|
||||
tr += '<td>' + getEncryption(res.aps[i].e) + '</td>';
|
||||
//tr += '<td>' + res.aps[i].r + ' <meter value="' + res.aps[i].r + '" max="-30" min="-100" low="-80" high="-60" optimum="-50"></meter></td>';
|
||||
var _width = res.aps[i].r + 130;
|
||||
var _color;
|
||||
if(res.aps[i].r < -80) _color = "meter_red";
|
||||
else if(res.aps[i].r < -60) _color = "meter_orange";
|
||||
else _color = "meter_green";
|
||||
tr += '<td><div class="meter_background"> <div class="meter_forground '+_color+'" style="width: '+_width+'%;"><div class="meter_value">' + res.aps[i].r + '</div></div> </div></td>';
|
||||
|
||||
if (res.aps[i].se) {
|
||||
tr += '<td><button class="marginNull selectedBtn" onclick="select(' + res.aps[i].i + ')">deselect</button></td>';
|
||||
tr += '<td><button class="select" onclick="select(' + res.aps[i].i + ')">deselect</button></td>';
|
||||
apMAC.innerHTML = res.aps[i].m;
|
||||
}
|
||||
else tr += '<td><button class="marginNull" onclick="select(' + res.aps[i].i + ')">select</button></td>';
|
||||
else tr += '<td><button class="select" onclick="select(' + res.aps[i].i + ')">select</button></td>';
|
||||
tr += '</tr>';
|
||||
}
|
||||
table.innerHTML = tr;
|
||||
|
||||
@@ -6,6 +6,7 @@ var saved = getE("saved");
|
||||
var ssidCounter = getE("ssidCounter");
|
||||
var ssid = getE("ssid");
|
||||
var num = getE("num");
|
||||
var enc = getE("enc");
|
||||
var randomIntrvl = getE("randomIntrvl");
|
||||
var randomBtn = getE("randomBtn");
|
||||
var resultInterval;
|
||||
@@ -17,7 +18,7 @@ function getResults() {
|
||||
var aps = "";
|
||||
var clients = "";
|
||||
var tr = "<tr><th>Attack</th><th>Status</th><th>Start/Stop</th></tr>";
|
||||
for (var i = 0; i < res.aps.length; i++) aps += "<li>" + res.aps[i] + " <button onclick='cloneSSID(\""+res.aps[i]+"\")'>clone</button></li>";
|
||||
for (var i = 0; i < res.aps.length; i++) aps += "<li>" + res.aps[i] + "</li>";
|
||||
for (var i = 0; i < res.clients.length; i++) clients += "<li>" + res.clients[i] + "</li>";
|
||||
|
||||
selectedAPs.innerHTML = aps;
|
||||
@@ -31,10 +32,10 @@ function getResults() {
|
||||
else tr += "<tr>";
|
||||
|
||||
tr += "<td>" + res.attacks[i].name + "</td>";
|
||||
if (res.attacks[i].status == "ready") tr += "<td class='green' id='status"+i+"'>" + res.attacks[i].status + "</td>";
|
||||
else tr += "<td class='red' id='status"+i+"'>" + res.attacks[i].status + "</td>";
|
||||
if (res.attacks[i].running) tr += "<td><button class='marginNull selectedBtn' onclick='startStop(" + i + ")'>stop</button></td>";
|
||||
else tr += "<td><button class='marginNull' onclick='startStop(" + i + ")'>start</button></td>";
|
||||
if (res.attacks[i].status == "ready") tr += "<td class='green status' id='status"+i+"'>" + res.attacks[i].status + "</td>";
|
||||
else tr += "<td class='red status' id='status"+i+"'>" + res.attacks[i].status + "</td>";
|
||||
if (res.attacks[i].running) tr += "<td><button class='select' onclick='startStop(" + i + ")'>stop</button></td>";
|
||||
else tr += "<td><button class='select' onclick='startStop(" + i + ")'>start</button></td>";
|
||||
|
||||
tr += "</tr>";
|
||||
}
|
||||
@@ -44,11 +45,13 @@ function getResults() {
|
||||
data = res.ssid;
|
||||
ssidCounter.innerHTML = data.length + "/48";
|
||||
|
||||
var tr = "<tr><th>Name</th><th>X</th></tr>";
|
||||
var tr = "<tr><th>Name</th><th></th><th>Del.</th></tr>";
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
tr += "<tr>";
|
||||
tr += "<td>" + data[i] + "</td>";
|
||||
tr += '<td><button class="marginNull button-warn" onclick="deleteSSID(' + i + ')">x</button></td>';
|
||||
tr += "<td>" + data[i][0] + "</td>";
|
||||
if(data[i][1] == 1) tr += "<td>🔒</td>";
|
||||
else tr += "<td></td>";
|
||||
tr += '<td><button class="button-warn" onclick="deleteSSID(' + i + ')">x</button></td>';
|
||||
tr += "</tr>";
|
||||
}
|
||||
ssidList.innerHTML = tr;
|
||||
@@ -75,15 +78,13 @@ function addSSID() {
|
||||
if(data.length >= 64) showMessage("SSID list full :(", 2500);
|
||||
else{
|
||||
saved.innerHTML = "";
|
||||
getResponse("addSSID.json?ssid=" + _ssidName + "&num="+num.value, getResults);
|
||||
getResponse("addSSID.json?ssid=" + _ssidName + "&num="+num.value + "&enc=" + enc.checked, getResults);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function cloneSSID(_ssidName) {
|
||||
ssid.value = _ssidName;
|
||||
if(data.length > 0) num.value = 48 - data.length;
|
||||
else num.value = 48;
|
||||
function cloneSelected() {
|
||||
getResponse("cloneSelected.json", getResults);
|
||||
}
|
||||
|
||||
function deleteSSID(num) {
|
||||
|
||||
@@ -1,16 +1,23 @@
|
||||
function showMessage(msg, closeAfter){
|
||||
document.getElementById("error").innerHTML = msg;
|
||||
if(closeAfter !== undefined){
|
||||
setTimeout(function(){
|
||||
document.getElementById("error").innerHTML = "";
|
||||
},closeAfter);
|
||||
}
|
||||
}
|
||||
|
||||
function getE(name){
|
||||
return document.getElementById(name);
|
||||
}
|
||||
|
||||
function showMessage(msg, closeAfter){
|
||||
var errorE = getE("error");
|
||||
errorE.innerHTML = msg;
|
||||
|
||||
errorE.classList.remove('hide');
|
||||
errorE.classList.add('show');
|
||||
|
||||
if(closeAfter !== undefined){
|
||||
setTimeout(function(){
|
||||
errorE.innerHTML = "";
|
||||
errorE.classList.remove('show');
|
||||
errorE.classList.add('hide');
|
||||
},closeAfter);
|
||||
}
|
||||
}
|
||||
|
||||
function getResponse(adr, callback, timeoutCallback, timeout, method){
|
||||
if(timeoutCallback === undefined) {
|
||||
timeoutCallback = function(){
|
||||
@@ -23,7 +30,6 @@ function getResponse(adr, callback, timeoutCallback, timeout, method){
|
||||
xmlhttp.onreadystatechange = function() {
|
||||
if(xmlhttp.readyState == 4){
|
||||
if(xmlhttp.status == 200){
|
||||
showMessage("");
|
||||
callback(xmlhttp.responseText);
|
||||
}
|
||||
else timeoutCallback();
|
||||
|
||||
@@ -11,7 +11,6 @@ var deauthReason = getE('deauthReason');
|
||||
var packetRate = getE('packetRate');
|
||||
var saved = getE('saved');
|
||||
var clientNames = getE('clientNames');
|
||||
var ssidEnc = getE('ssidEnc');
|
||||
var useLed = getE('useLed');
|
||||
/*var channelHop = getE('channelHop');*/
|
||||
var multiAPs = getE('multiAPs');
|
||||
@@ -42,7 +41,6 @@ function getData() {
|
||||
timeout.value = res.attackTimeout;
|
||||
deauthReason.value = res.deauthReason;
|
||||
packetRate.value = res.attackPacketRate;
|
||||
ssidEnc.checked = res.attackEncrypted;
|
||||
useLed.checked = res.useLed;
|
||||
/*channelHop.checked = res.channelHop;*/
|
||||
multiAPs.checked = res.multiAPs;
|
||||
@@ -67,7 +65,6 @@ function saveSettings() {
|
||||
url += "&timeout=" + timeout.value;
|
||||
url += "&deauthReason=" + deauthReason.value;
|
||||
url += "&packetRate=" + packetRate.value;
|
||||
url += "&ssidEnc=" + ssidEnc.checked;
|
||||
url += "&useLed=" + useLed.checked;
|
||||
/*url += "&channelHop=" + channelHop.checked;*/
|
||||
url += "&multiAPs="+multiAPs.checked;
|
||||
|
||||
@@ -35,21 +35,21 @@ function getResults() {
|
||||
clientsFound.innerHTML = res.clients.length;
|
||||
|
||||
var tr = '';
|
||||
if (res.clients.length > 0) tr += '<tr><th>Pkts</th><th>Vendor</th><th>Name</th><th>MAC</th><th>AP</th><th>Select</th></tr>';
|
||||
if (res.clients.length > 0) tr += '<tr><th>Pkts</th><th>Name</th><th>MAC</th><th>AP</th><th>Select</th></tr>';
|
||||
|
||||
for (var i = 0; i < res.clients.length; i++) {
|
||||
|
||||
if (res.clients[i].s == 1) tr += '<tr class="selected">';
|
||||
else tr += '<tr>';
|
||||
tr += '<td>' + res.clients[i].p + '</td>';
|
||||
tr += '<td>' + res.clients[i].v + '</td>';
|
||||
if(res.clients[i].l >= 0) tr += '<td>' + res.clients[i].n + ' <a onclick="editNameList(' + res.clients[i].l + ')">edit</a></td>';
|
||||
if(res.clients[i].l >= 0) tr += '<td>' + res.clients[i].n + ' <a onclick="editNameList(' + res.clients[i].l + ')"></a></td>';
|
||||
else tr += '<td><a onclick="setName(' + res.clients[i].i + ')">set</a></td>';
|
||||
tr += '<td>' + res.clients[i].m + '</td>';
|
||||
if(res.clients[i].v.length > 1) tr += '<td>' + res.clients[i].v + res.clients[i].m.substring(8, 20) + '</td>';
|
||||
else tr += '<td>' + res.clients[i].m + '</td>';
|
||||
tr += '<td>' + res.clients[i].a + '</td>';
|
||||
|
||||
if (res.clients[i].s == 1) tr += '<td><button class="marginNull selectedBtn" onclick="select(' + res.clients[i].i + ')">deselect</button></td>';
|
||||
else tr += '<td><button class="marginNull" onclick="select(' + res.clients[i].i + ')">select</button></td>';
|
||||
if (res.clients[i].s == 1) tr += '<td><button class="marginNull select" onclick="select(' + res.clients[i].i + ')">deselect</button></td>';
|
||||
else tr += '<td><button class="marginNull select" onclick="select(' + res.clients[i].i + ')">select</button></td>';
|
||||
|
||||
tr += '</tr>';
|
||||
}
|
||||
@@ -57,7 +57,7 @@ function getResults() {
|
||||
|
||||
clientNames.innerHTML = res.nameList.length + "/50";
|
||||
|
||||
var tr = '<tr><th>MAC</th><th>Name</th><th>X</th><th>Add</th></tr>';
|
||||
var tr = '<tr><th>MAC</th><th>Name</th><th>Del.</th><th>Add</th></tr>';
|
||||
|
||||
for (var i = 0; i < res.nameList.length; i++) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user