Back to top

Autore Topic: Eliminazione utente!  (Letto 4827 volte)

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Eliminazione utente!
« il: 26 Giu 2010, 15:07:04 »
Ciao a tutti! ho scritto due righe di codice per permettere ad un utente di eliminarsi dal portale:

Codice: [Seleziona]
<?php
$id
=$_POST['id'];
$out $_POST['out'];
if(
$out==0){
echo 
" Buona navigazione ";
} else{
include(
"../configuration.php");
$db = new JConfig;
$connessione=mysql_connect($db->host,$db->user,$db->password) or die(mysql_error());
$data=mysql_select_db($db->db);
$delete=mysql_query("
DELETE FROM jos_comprofiler WHERE id= 
$id
"
);
$delete2=mysql_query("
DELETE FROM jos_users WHERE id = 
$id
"
);
$delete3=mysql_query("
DELETE FROM jos_core_acl_aro WHERE id = 
$id
"
);
echo 
" Account eliminato, buona navigazione ";
}
?>


Ho fatto una prova ma non va, l'utente si elimina ma poi non può vedere più il sito, schermata bianca!!

Help!

Offline peterrey

  • Appassionato
  • ***
  • Post: 516
  • Sesso: Maschio
  • raccolgo per pulire il mondo
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #1 il: 26 Giu 2010, 16:40:45 »
ciao lory1990 mi incuriosisce la tua azione ,non potevi cancellarlo dal backend ?
usi cb ? se si c'è un plugin che fà quello che penso volevi fare (delete me)
tra breve ci sarà una nuova realtà trashware

mau_develop

  • Visitatore
Re:Eliminazione utente!
« Risposta #2 il: 26 Giu 2010, 17:47:54 »
bello dov'è questa cosa?

$_POST['id'];

quindi l'utente con id 3 esiste, vediamo di arricchire un po' questa query ...

allora, farò un bel form con una var id = 3%20union%20select%201,unhex(hex(concat(username,0x3a,password))),3%20from%20jos_users


ed oplà ecco la tua password di admin con cui due minuti dopo ti spazzo tutto ;)

...meditate gente meditate...

M.

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #3 il: 26 Giu 2010, 18:56:19 »
@mau_develop: il post arriva da 1 altra pagina e trattasi anche di un campo di tipo hidden quindi nessun problema! (almeno si spera)
L'utente licca su cancella account, gli viene chiesto si o no e poi si viene reinidirizzati su questa pagina!



Cmq ho trovato il plugin delete me e funziona grazie!

Offline peterrey

  • Appassionato
  • ***
  • Post: 516
  • Sesso: Maschio
  • raccolgo per pulire il mondo
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #4 il: 26 Giu 2010, 20:01:01 »
Citazione
Cmq ho trovato il plugin delete me e funziona grazie!
  ;)
ricordo di ringraziare lo sviluppatore che lo da free con un msg sull'extensions.joomla.org
tra breve ci sarà una nuova realtà trashware

mau_develop

  • Visitatore
Re:Eliminazione utente!
« Risposta #5 il: 26 Giu 2010, 20:47:50 »
un campo di tipo hidden quindi nessun problema!
-----------------------------------------------------------------

ahhh... se è hidden.... :):) ...maddai su

M.

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #6 il: 26 Giu 2010, 23:06:57 »
spero non ci sia del sarcasmo....

mau_develop

  • Visitatore
Re:Eliminazione utente!
« Risposta #7 il: 26 Giu 2010, 23:15:47 »
ma ce n'è molto... per l'amor diddio... non voglio insegnarti nulla ma fatti venire dei dubbi no?

ciè sostanzialmente mi sto facendo i fattacci tuoi, me ne potrei stare pure zitto ( e lo faccio), ma quando vedo i post e i get ...nn riesco mai a stare zitto

...il 95% delle vulnerabilità proviene da qs cose

poi vedi tu, io la pianto quì

M.

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #8 il: 26 Giu 2010, 23:24:17 »
ma allora come posso passare  i dati? io pensavo che si facesse tutto con post e get!

mau_develop

  • Visitatore
Re:Eliminazione utente!
« Risposta #9 il: 27 Giu 2010, 07:50:51 »
si fa con post e get :) , ma si fa correttamente.

get e post sono due metodi per spedire, spedire si può spedire qualsiasi cosa e chiunque può spedirti qualsiasi cosa e qui non puoi fare nulla.

L'unico momento del processo in cui puoi intervenire è la ricezione, proprio come quando ricevi la posta devi farti 2 domande:

- chi me la manda
- che cos'è

Siccome non puoi saperlo fin quando non lo processi e quando lo processi parte l'esploit allora bisogna far qualcosa prima, dirgli che cosa ti aspetti e il resto non processarlo.

Se spedico un id so che è un numero e magari posso anche affermare che è lungo max 9 cifre, inoltre so che lo spedisce la mia appz e la riceve la mia appz

Saranno le cose che controllerò con una condizione al ricevimento:

if( is_numeric($_POST['id']) ) --> fai qualcosa solo se sei un numero
o anche
$pippo = (int)$_POST['id']; non condizionale ma forzo a integer altrimenti == false

in questo modo non passa altro che numeri, anche se non è proprio filtratissimo è già un livello di sicurezza buono.

Poi c'è il secondo problema: da dove arriva?

Si perchè potrei costruire un form sul mio spazio e martellarti di richieste finchè non passo o trovo qualcosa da sfruttare.

Anche qui non c'è nulla che porti un indirizzo, il server è ignorante, non lega a se la richiesta in nessun modo e in nessun modo può sapere se tu sei lo stesso della richiesta precedente...

allora si ricorre al cosiddetto token, ovvero spedisco insieme al form un codice da me generato che controllero se corrisponde al ricevimento.

Eeee... dopo tutta questa pappardella Joomla ti mette a disposizione semplicissimi metodi per fare ciò che stavi facendo... ma devi restare nell'MVC.

http://docs.joomla.org/Retrieving_data_from_GET_and_POST_requests

M.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #10 il: 27 Giu 2010, 09:53:31 »
ciao,
 ma a parte i problemi di sql injection stra-correttamente segnalati da maurizio, usare il metodo delete() di JUser?
Non è corretto cancellare direttamente dalle tabelle, perché non lanciando i triggers associati alla gestione degli utenti rischi di lasciare dati inconsistenti in altre estensioni.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #11 il: 27 Giu 2010, 21:55:03 »
Wow che abnorme falla che ho creato nel mio sito! Ok... presto dovrò riscostruire i "programmi" che ho fatto... perchè ho agito sulle tabelle direttamente.... vabbè studierò MVC che mi sembra sicuro ed affidabile!

Creerò un nuovo post tipo [WIP] (work in progress) appena avrò finito gli esami all'uni!
grazie delle dritte, inizierò presto a dare più di una letta alla documentazione!

mau_develop

  • Visitatore
Re:Eliminazione utente!
« Risposta #12 il: 27 Giu 2010, 22:00:02 »
:) ...guarda quello che ha postato vamba oggi, è l'esempio di ciò che ti ho detto fin'ora

http://forum.joomla.it/index.php/topic,107363.0.html

M.

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #13 il: 27 Giu 2010, 22:20:07 »
Interessante! :P leggo la documentazione di MVC e non sembra complicatissimo! Vorrei programmare ma lo studio della fisica mi chiama! :)

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #14 il: 28 Giu 2010, 06:50:29 »
Wow che abnorme falla che ho creato nel mio sito!

ciao lory,
supponi che un utente spiritoso, e dotato di firebug, faccia assomigliare il campo hidden a questo:

<input type="hidden" name="id" value="3 OR 1"

indovina che succede...

@mau

delete ... union select ...
non funziona  :P

ciao,
marco

==== edited
indovina che succede, ma NON provarlo: è meglio per te  ;D
« Ultima modifica: 28 Giu 2010, 07:57:49 da mmleoni »
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

mau_develop

  • Visitatore
Re:Eliminazione utente!
« Risposta #15 il: 28 Giu 2010, 08:34:20 »
beh sul delete no ovviamente... era il principio  ;D

M.

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #16 il: 28 Giu 2010, 10:20:33 »
NO, non capisco cosa possa succedere, praticamente seleziona due utenti no?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #17 il: 28 Giu 2010, 10:38:08 »
ciao lory,
la query diventa:

DELETE FROM jos_users WHERE id = 3 OR 1

dato che l'operatore di confronto ha priorità maggiore rispetto all'unione (OR), la query si legge:

DELETE FROM jos_users WHERE ( (id = 3) OR (1) )

dato che 1 è TRUE per definizione ed che il risultato dell'unione con TRUE è sempre TRUE, la query diventa:

DELETE FROM jos_users WHERE TRUE

ovvero

DELETE FROM jos_users

ovviamente vale per tutte le queries implicate, capito perché non è da provare?  ;)

ciao,
marco

ps:
#__users non jos_users...
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline lory1990

  • Esploratore
  • **
  • Post: 156
  • Sesso: Maschio
    • Mostra profilo
Re:Eliminazione utente!
« Risposta #18 il: 28 Giu 2010, 11:43:30 »
mi fai rabbrividire!! :P

 



Web Design Bolzano Kreatif