<th align="right" colspan="2"> </th> </tr> <tr> <!-- BEGIN Nodi connessi --> <td class="formsubtitle" colspan="2"><img src='img/connect.gif' alt=''> <?php $idquery = "SELECT value FROM config WHERE MAIN_GROUP='SHARE' AND SUBKEY='" . $SNAME . "' AND FKEY='ID';"; $idriga = $db->get_var($idquery); $req_nod[INFO][FORUM][0] = @pack("H*", $idriga); $core = new CoreSock(); if (!@$core->Connect()) { echo "<font color=red>Core offline!</font>"; } else { $core->Send($req_nod); if (!($risposta = $core->Read())) { echo "<font color=red>" . ($lang['timeout'] . "</font><br>"); } else { if (!$risposta[INFO][FORUM][$req_nod[INFO][FORUM][0]][NUM_NODI]) { echo $lang['perl_noderror3']; } else { echo $lang['perl_node1'] . $risposta[INFO][FORUM][$req_nod[INFO][FORUM][0]][NUM_NODI] . $lang['perl_node2']; } } } ?> </td> </tr> <!-- End Nodi connessi --> <tr> <!-- Begin totale messaggi -->
"Ok <br><br>\n"; } //add user hash returned from the core (md5) into the private key if (empty($risp['MD5'])) { $std->Error("Core didn't return TRUEMD5, aborting!"); } $truemd5 = $risp['MD5']; //var_dump($risp); // echo "TRUEMD5: " . $truemd5 . "<br><br>"; // dedump private key.... $req[FUNC][BlowDump2var][Data] = base64_decode($chiavi[priv]); $req[FUNC][BlowDump2var][Key] = $password; if (!$core->Send($req)) { $std->Error("Timeout sending data to the core, aborting."); } $resp = $core->Read(); $newprivkey = $resp[FUNC][BlowDump2var]; if (!$newprivkey) { $std->Error("Error receiving data from the core, aborting."); } //....add user hash.... $newprivkey[hash] = $truemd5; // var_dump($newprivkey); // ...dump the new private key....we'll get it in base64... //unset($req); $req2[FUNC][var2BlowDump64][Key] = $password; $req2[FUNC][var2BlowDump64][Data] = $newprivkey; //var_dump($req2); //echo "<br>FATTO REQ2<br><br>"; if (!$core->Send($req2)) { $std->Error("Timeout sending data to the core, aborting.");
$KEY_DECRYPT = pack('H*', md5($_SESSION[$SNAME]['sess_nick'] . $_SESSION[$SNAME]['sess_password'])); // = password per decriptare la chiave privata in localmember (16byte) $query = "SELECT PASSWORD FROM " . $SNAME . "_localmember WHERE HASH='{$IDENTIFICATORE}';"; $password = $db->get_var($query); if (!$password) { $std->Error("niente password"); } else { $privkey = base64_decode($password); } $req[FUNC][BlowDump2var][Key] = $KEY_DECRYPT; $req[FUNC][BlowDump2var][Data] = $privkey; $core = new CoreSock(); if (!$core->Send($req)) { $std->Error("Error sending data to the core"); } if (!($risp = $core->Read())) { $std->Error("Error receiving data from the core"); } $oldprivkey = $risp[FUNC][BlowDump2var]; if (!$oldprivkey) { $std->Error("Error receiving data from the core, aborting."); } $query = "SELECT hash FROM {$SNAME}_membri WHERE PKEYDEC='" . $oldprivkey['private']['_n'] . "';"; $userhash = $db->get_var($query); if (empty($userhash)) { $std->Error("User not found!"); } $oldprivkey[hash] = $userhash; $req2[FUNC][var2BlowDump64][Key] = $KEY_DECRYPT; $req2[FUNC][var2BlowDump64][Data] = $oldprivkey; //var_dump($req2);
function get_my_info() { /* RETURN: Array( hash - id ) */ global $std, $SNAME, $userdata; if (!$_SESSION[$SNAME]['sess_nick']) { return ""; } if (!$userdata) { return ""; } $KEY_DECRYPT = pack('H*', md5($_SESSION[$SNAME]['sess_nick'] . $_SESSION[$SNAME]['sess_password'])); // = password per decriptare la chiave privata in localmember (16byte) $privkey = base64_decode($userdata->PASSWORD); $PKEY = $std->getpkey($SNAME); $req[FUNC][Base642Dec] = $PKEY; $req[FUNC][BlowDump2var][Key] = $KEY_DECRYPT; $req[FUNC][BlowDump2var][Data] = $privkey; $core = new CoreSock(); if (!$core->Send($req)) { return NULL; } if (!($risp = $core->Read())) { return NULL; } $return[0] = $risp[FUNC]["BlowDump2var"]["hash"]; //dell'utente loggato in questo momento list($asd, $return[1]) = unpack('H*', $return[0]); return $return; }
<?php include "testa.php"; // carico la lingua per la index $lang += $std->load_lang('lang_index', $blanguage); $corereq['RSA']['GENKEY']['CONSOLE_OUTPUT'] = 0; $coresk = new CoreSock(); if (!$coresk->Send($corereq)) { $std->Error("Errore in send!"); } $coreresp = $coresk->Read(60); if (!$coreresp) { $std->Error("Errore in read!"); } echo "pub: " . $coreresp['RSA']['GENKEY']['pub'] . "<br>"; echo "priv: " . $coreresp['RSA']['GENKEY']['priv'] . "<br>"; //include("end.php");
if (!empty($nick) and !empty($password) and empty($privkey)) { // create a new user $identif = md5(md5($password, TRUE) . $nick); $idforum = $std->getidforum($SNAME); print "l'id del forum è {$idforum}\n<br>"; $corereq['RSA']['GENKEY']['CONSOLE_OUTPUT'] = 0; $corereq['RSA']['GENKEY']['PWD'] = md5($nick . md5($password, TRUE), TRUE); #$corereq['RSA']['GENKEY']['NICK'] = $nick; #$corereq['RSA']['GENKEY']['PKEY64'] = $PKEY64; // quando invio una richiesta GENKEY dove è presente NICK sto generando una chiave per un utente, il core mi ritorna anche la PKEY in decimale in ['pkeydec'] // e l'hash del messaggio in ['hash'] così evito di fare richieste/conti dopo $coresk = new CoreSock(); if (!$coresk->Send($corereq)) { die("Errore in send1!"); } $coreresp = $coresk->Read(120); if (!$coreresp) { die("Errore in read1!"); } $rsapub = $coreresp['RSA']['GENKEY']['pub']; // in decimale $rsapriv = $coreresp['RSA']['GENKEY']['priv']; // in base64 #$PKEY = $coreresp['RSA']['GENKEY']['pkeydec']; //pkey del forum in decimale #$date = $coreresp['RSA']['GENKEY']['date']; // la prendo così perchè deve essere quella usata per creare l'hash #$hash = $coreresp['RSA']['GENKEY']['hash']; print "Chiave pubblica {$rsapub}<br>e privata:<br>{$rsapriv}<br>\n"; unset($coreresp, $corereq); #if ( strlen($PKEY) < 120 ) die("".$lang['reg_keynotvalid'].""); $corereq['FUNC']['Dec2Bin'] = $rsapub; // converto la chiave pubblica in binario
$IDENTIFICATORE = md5($_SESSION[$SNAME]['sess_password'] . $_SESSION[$SNAME]['sess_nick']); // = identificatore dell'utente nella tabella localmember. easadecimale $KEY_DECRYPT = pack('H*', md5($_SESSION[$SNAME]['sess_nick'] . $_SESSION[$SNAME]['sess_password'])); // = password per decriptare la chiave privata in localmember (16byte) $query = "SELECT PASSWORD FROM " . $SNAME . "_localmember WHERE HASH='" . $IDENTIFICATORE . "';"; $privkey = base64_decode($db->get_var($query)); $PKEY = $std->getpkey($SNAME); //$req[FUNC][Base642Dec]=$PKEY; $req[FUNC][BlowDump2var][Key] = $KEY_DECRYPT; $req[FUNC][BlowDump2var][Data] = $privkey; $core = new CoreSock(); if (!$core->Send($req)) { $std->Error($lang['reply_core'], $_REQUEST['body']); } // timeout ? if (!($risp = $core->Read())) { $std->Error($lang['reply_timeout'], $_REQUEST['body']); } //$PKEY=$risp[FUNC][Base642Dec]; if (strlen($PKEY) < 120) { $std->Error($lang['reply_admin'], $_REQUEST['body']); } if (strlen($risp[FUNC][BlowDump2var][hash]) != 16) { $std->Error($lang['reply_pdata'], $_REQUEST['body']); } $userhash = $risp[FUNC][BlowDump2var][hash]; if (get_magic_quotes_gpc()) { $userhash = stripslashes($userhash); } $userhash = mysql_real_escape_string($userhash); $querysql = "SELECT count(1) FROM {$SNAME}_newmsg WHERE HASH='" . mysql_escape_string($MSG_HASH) . "'";
<?php $core = new CoreSock(); $sesname = $_POST[name]; // Copio le variabili di POST in scalari normali. funza if (strlen($sesname) != 5) { die("Il nome del forum deve essere di 5 caratteri"); } if (strlen($_POST[pkey]) > 150) { $pkey_dec = $_POST[pkey]; $forum_id = sha1($pkey_dec); // Calcolo l'ID del forum in esadecimale, funziona $req['FUNC']['Dec2Base64'] = $pkey_dec; if (!$core->Send($req)) { die("Errore mentre si tentava di comunicare con il core: " . $core->errmsg); } if (!($risp = $core->Read(6))) { die("Errore mentre si tentava di comunicare con il core: " . $core->errmsg); } $pkey_base64 = $risp['FUNC']['Dec2Base64']; } else { $req[RSA][GENKEY][GEN] = 1; $req[RSA][GENKEY][CONSOLE_OUTPUT] = 1; if (!$core->Send($req)) { die("Errore mentre si tentava di comunicare con il core: " . $core->errmsg); } if (!($risp = $core->Read(120))) { die("Errore mentre si tentava di comunicare con il core: " . $core->errmsg); } $forum_id = sha1($risp[RSA][GENKEY][pub]); $pkey_dec = $risp[RSA][GENKEY][pub]; print "Chiave pubblica:<textarea cols=40 rows=10>" . $risp[RSA][GENKEY][pub] . "</textarea><br><br>";
print "Non hai una sessesione\n"; } $sez[SEZID] = 10; $sez[SEZ_NAME] = 'alfa test'; $sez[SEZ_DESC] = 'descrizione della sezione alfa test'; $sez[ORDINE] = 2; //è la seconda sezione $core = new CoreSock(); // Per momotizzare una variabile dobbiamo usare l'insieme delle funzione chiamate TMPVAR. // La funzione che momorizza si chiama ADDVAR // Visto che ci possono essere anche più sessioni memorizzate noi inseriamo la nostra variabile in una sottochiave di session_id(); // EditSez è il nome della funzione che nel core crea e modifica le sezioni. // il vettore numero ci suggerisce che possiamo inserire un insieme di puù sezioni nello stesso comando. $req[TMPVAR][ADDVAR][session_id()][EditSez][0] = $sez; $core->Send($req); $core->Read(); //buttiamo via la risposta, che ce ne frega? /* Una volta che abbiamo inserito la variabile nel core ci possiamo anche disconnettere. Possiamo chiudere il browser. Possiamo andare a casa fare la doccia...etc. La variabile che abbiamo messo dentro resta memorizzata fino a quando nn viene riavviato il core o non usiam l'apposita funzione. */ // Deciamo di aggiungere una nuova sezione: $sez[SEZID] = 20; $sez[SEZ_NAME] = 'beta test'; $sez[SEZ_DESC] = 'descrizione della sezione abeta test'; $sez[ORDINE] = 1; //è la prima sezione $secreq[TMPVAR][ADDVAR][session_id()][EditSez][1] = $sez; $core->Send($secreq); //facciamo un altro store
?> <?php if ($submit) { require "functions.php"; include "core.php"; $corereq['RSA']['GENKEY']['CONSOLE_OUTPUT'] = 0; $coresk = new CoreSock(); echo "<div align=center>"; echo $lang['newbrd_keygen']; flush(); if (!$coresk->Send($corereq)) { $std->Error($lang['newbrd_senderr']); } $coreresp = $coresk->Read($globaltimeout); if (!$coreresp) { die($lang['newbrd_coretimeout']); } $bname = $_REQUEST['bsession']; $bdesc = $_REQUEST['bdesc']; $pubkey = $coreresp['RSA']['GENKEY']['pub']; $privkey = $coreresp['RSA']['GENKEY']['priv']; $bid = sha1($pubkey); $xmlcont = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n <BOARD>\n \t<NAME>{$bname}</NAME>\n \t<SESSION>{$bname}</SESSION>\n \t<DESC>{$bdesc}</DESC>\n \t<LANG>IT</LANG>\n \t<PKEY>{$pubkey}</PKEY>\n \t<ID>{$bid}</ID>\n \t<STARTUP>*</STARTUP>\n </BOARD>"; echo "<b>" . $lang['newbrd_pk'] . "</b> <br>"; echo "<textarea rows='5' name='chiave' cols='70' readonly class='row2' style='border: none; overflow: auto'>{$pubkey}</textarea><br><br>"; echo "<b>" . $lang['newbrd_brdid'] . "</b><br>"; echo "<textarea rows='1' name='chiave' cols='70' readonly class='row2' style='border: none; overflow: auto'>{$bid}</textarea><br><br>"; echo "<b>" . $lang['newbrd_xmlfile'] . " (es {$bname}.kfb) " . $lang['newbrd_infoxml'] . ": </b><br>"; echo "<textarea rows='15' name='chiave' cols='70' readonly class='row2' style='border: none; overflow: auto'>{$xmlcont}</textarea><br><br>";
if ($_REQUEST['home']) { $Home = 1; } else { $Home = 0; } } if ($_REQUEST['lock'] xor $Lock) { if ($_REQUEST['lock']) { $core = new CoreSock(); if (@$core->Connect()) { // Questa parte mi serve solo per ottenere una risposta dal core, così da leggerne il timestamp GMT $idquery = "SELECT value FROM config WHERE MAIN_GROUP='SHARE' AND SUBKEY='" . $SNAME . "' AND FKEY='ID';"; $idriga = $db->get_var($idquery); $req_nod[INFO][FORUM][0] = @pack("H*", $idriga); $core->Send($req_nod); $risp = $core->Read(); // Fine parte fittizia $Lock = $risp['CORE']['INFO']['GMT_TIME']; $change = 1; } } else { $Lock = 0; $change = 1; } } if ($change) { $extvar[update_thread] = 1; // Eseguo l'update sul thread $extvar[pinned] = $Pinned; $extvar[fixed] = $Fixed; $extvar[home] = $Home;
if (empty($ORDER)) { $ORDER = "DESC"; } if (empty($LIMIT)) { $LIMIT = 200; } $PKEY = $std->getpkey($_SERVER['sesname']); if (empty($MODO) or empty($PKEY)) { $std->Error("Error on request!\n"); } else { $coreconn = new CoreSock(); $convreq['FUNC']['Base642Dec'] = $PKEY; if (!$coreconn->Send($convreq)) { $std->Error("Error sending request to core!\n"); } $pkeydec = $coreconn->Read(); if (!$pkeydec) { $std->Error("Error receiving core data!\n"); } $pkeysha1 = sha1($pkeydec['FUNC']['Base642Dec']); $forumid = pack("H*", $pkeysha1); $hashreq['HASHREQ'][$forumid]['MODO'] = $MODO; $hashreq['HASHREQ'][$forumid]['LIMIT'] = $LIMIT; $hashreq['HASHREQ'][$forumid]['ORDER'] = $ORDER; if (!empty($_REQUEST['MAX_DATE'])) { $hashreq['HASHREQ'][$forumid]['MAX_DATE'] = $_REQUEST['MAX_DATE']; } if (!empty($_REQUEST['MIN_DATE'])) { $hashreq['HASHREQ'][$forumid]['MIN_DATE'] = $_REQUEST['MIN_DATE']; } switch ($MODO) {