[Javascript] Spiegazioni di due funzioni

MarDom96

Nuovo Utente
27 Giu 2016
8
0
1
28
Buonasera ragazzi. Vorrei chiedervi una cosa.

Riporto qui un codice in js che è integrato in una pagina php:

Spiego brevemente cosa ho nella pagina php:

Ho due form.
Nel primo quando invio la richiesta è "#".
Nel secondo è l'indirizzamento a un'altra pagina php ma per accedervi mi servirà una sorta di password.

Nel primo form ho:
La funzione init(), che viene caricata a inizio pagina, non fa altro che riempire due menù a tendina con 16 elementi (da 0 a 9 e da "a" ad "f").
La funziona noop() so già che non farebbe nulla di speciale ma ve la riporto comunque.

Oltre a questi due menù a tendina ho due pulsanti: "munge" e "grok" ma a quelli ci arrivo dopo.
Infine ho una textboxt in readonly in cui visualizzo l'output dei due pulsanti.

Nel secondo form ho una textbox in cui c'è da inserire una sorta di password (da ottenere attraverso l'altro form)
per poi inviare la richiesta con un pulsante ed essere indirizzati alla nuova pagina.

Codice:
function init(){
    var elx=document.getElementById('obs_x');
    var ely=document.getElementById('obs_y');
    for(var i=0x0;i<0x10;i++){
        var option = document.createElement("option");
        option.text=i.toString(16);
        option.value=i;
        elx.add(option);

        var option2 = document.createElement("option");
        option2.text=i.toString(16);
        option2.value=i;
        ely.add(option2);
    }
    noop();
}

(obs_x e obs_y sono i due menù a tendina)

Codice:
function noop(){
    bt_toggle(false);
    var el = document.getElementById('obs_result');
    el.value="";
    getJSON('/res/turboencabulator/query.php',noop_callback);
}

(Il file query.php da come risultato "{}")

Codice:
function noop_callback(err,data){
    bt_toggle(true);
var el = document.getElementById('obs_result');
  if (err !== null) {
    el.value="ERROR";
  }
}

(obs_result è una textbox in readonly in cui viene visualizzato l'output)

Ok fin qui niente di strano, penso di aver compreso tutto.
Passiamo alla parte che non ho ben capito

Eccoci qui ai due pulsanti. Uno richiama la funzione munge, l'altro grok.

Codice:
function munge(){
    bt_toggle(false);
    var el = document.getElementById('obs_result');
    el.value="";
    getJSON('/res/turboencabulator/query.php?action=munge',munge_callback);
}

Qui il file query.php restituirà: {munged:yes}

Codice:
function munge_callback(err,data){
    bt_toggle(true);
var el = document.getElementById('obs_result');
  if (err !== null) {
    el.value="ERROR";
  } else {
    if(data.munged==="yes")
    el.value="SUCCESS";
    else
    el.value="FAILURE";
  }
}

Codice:
function grok(){
    var ela = document.getElementById('obs_x');
    var elb = document.getElementById('obs_y');
    grokval(ela.value,elb.value);
}

Codice:
function grokval(x,y){
    bt_toggle(false);
    var el = document.getElementById('obs_result');
    el.value="";
    getJSON('/res/turboencabulator/query.php?action=grok&x='+x+'&y='+y,grok_callback);
}

Codice:
function grok_callback(err,data){
    bt_toggle(true);
var el = document.getElementById('obs_result');
  if (err !== null) {
    el.value="ERROR";
  } else {
    el.value=data.observation;
  }
}

Ecco qui è dove casco, perchè non so cosa succede.
Per esempio se mando la richiesta al file query.php con x=1 e y=0 (i due valori dei due menù a tendina) ricevo la seguente risposta:
"{"munged":"no","x":1,"y":0,"observation":117}"

Ecco, che diamine di calcolo ha fatto per ottenere 117?
Preciso che ogni volta che si manda la richiesta anche con gli stessi valori l'output è diverso.
Se si manda la richiesta "grok" due volte o più di seguito dalla seconda si otterrà output 0 (zero)

Quindi immagino che la funzione munge serve tipo a resettare la funzione grok, non saprei dargli altre spiegazioni.
Ho ricevuto un consiglio però: che le due funzioni hanno un'operazione in comune.


Ecco, quello a cui devo arrivare è a questa sorta di password solo che ho bisogno di spiegazioni su come lavorano quelle due funzioni.

Grazie mille a tutti.
 
Credo di non aver ben capito.
Potresti rispiegarti meglio?
Noop() non mi sembra faccia tanta roba, richiama il file query.php che da solo restituire " {} "
 
Purtroppo non mi è dato sapere cosa c'è allinternal di wuel file , per questo ho chiesto aiuto qua
 
Ma attraverso quelle funzioni, non si riesce a risalire al calcolo che fa? Sempre ammesso che lui lo faccia
 
Provo a far così. Vi mando codice html dei form, un loro screenshot e il file in js in allegato (ho copiato il codice in un file txt).

Codice:
<div class="subcontent" style="background-color:transparent;">
<div class="subcontent" style="background-color:black;border:1px solid gray;color:white; width:100%">
<form action="#" onsubmit="return false;">
<select id="obs_x"></select>
<select id="obs_y"></select>
<input type="submit" value="munge" onclick="munge()" id="bt_munge">
<input type="submit" value="grok" onclick="grok()" id="bt_grok"><br><br>
<input type="text" id="obs_result" readonly="readonly" value="" style="width:100%;margin-bottom:8px;background-color:gray;color:black;">
</form>
</div>
<br><div class="subcontent" style="background-color:transparent;border:0;"></div><br>
<div class="subcontent"  style="background-color:black;border:1px solid gray;color:white; width:100%" >
<form action="/41_lap5f87vo6k6vgb0s3.php" method="POST">
<input type="text" name="submission" value="" style="width:100%;margin-bottom:8px;" placeholder="enter password"><br>
<input type="submit" name="action" value="submit" style="width:100%;margin-bottom:8px;">
</form>
</div>
</div>

<!--
turboencapulator requests are permitted to be automated within reason

munge and grok both have one operation in common
-->

I1e1rQG.png


Magari così si riesce a capire meglio
 

Allegati

il codice che hai postato non usa mai "init", suppongo sia un copia-incolla parziale (ma è strano)

se poi noti, il secondo form attiva uno script specifico ( credo ) per quella connessione,
altrimenti non ha senso un nome così strano
HTML:
<form action="/41_lap5f87vo6k6vgb0s3.php" method="POST">
questo mi fa pensare che se tu volessi bypassare il controllo calcolandoti la password,
poi non troveresti lo script che autorizza l'accesso

ma le mie sono supposizioni ....
 
Il secondo form lo devo usare alla fine. Immagino che questa password inserita andrà a scatenare qualcosa nello script per accedere alla pagina successiva.

Non c'è da bypassare nulla, devo solamente capire come funzionano quelle due funzioni munge e grok, specialmente quest'ultima.
Perchè sono sicuro che in qualche modo in quella textbox deve uscire questa maledetta password.

Edit:
Sono dell'idea che una volta che siamo riusciti a capire come diamine funziona grok, che è la funzione principale, bisogna creare un codice che stampi tutti le varie possibili combinazioni
 
Ultima modifica:

Discussioni simili