Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-05-2003, 08:47   #1
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
**ATTENZIONE**ASSOLUTA NON SICUREZZA DI ASP E DATABASE!!!!!

C'è un modo x iniettare sql dalla url... e può farlo chiunque conoscendo un minimo del db!!! (nel mio caso SQL server 2000)


Mettendo una stringa tipo :

https://www.sito.net/news/news2.asp?ID=297;%20UPDATE%20[News]%20SET%20[description]%20=%20'1'%20WHERE%20[ID]%20=%201

ESEGUE L'SQL!!!!

C'è un modo x risolverlo???

Praticamente se io nella pagina faccio
"SELECT * WHERE ID=297" quando acquisisco L'ID dall'URL la select diventa:::

"SELECT * FROM ID=297; UPDATE ....ETC"

IL ";" dice di eseguire la prox istruzione....!!!!
@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:03   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Interessante questa cosa... Non ci avevo mai pensato... Credo che la cosa più semplice sia fare un cast a intero (CInt()) della variabile presa dalla querystring...

Se il parametro è una stringa l'unica cosa che si può fare è controllare che non contenga un apice...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:09   #3
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
e se la variabile è un LOGIN???? es."PIPPO"
cioè... vuole dire cambiare ogni pagina del sito
@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:13   #4
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
anzi, se metto CINT può essere che canna l'ID

se ID=29 ; SELECT....

se il CINT fosse sul 29, ok
ma se il CIN PRende tutta la stringa... che casino!!!
@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:20   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "@GuyBrush@"

ma se il CIN PRende tutta la stringa... che casino!!!
In teoria dovrebbe prenderti solo il 29... Se prende tutta la stringa dovrebbe generare un errore e quindi ci copriamo le chapet...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:24   #6
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
non prende solo il 29:

se passo PAG.asp?ID=29;select...

il separatore delle variabili passate è il "&" non essendoci prende tutto..

inquesto caso eseguirebbe

SELECT * FROM TABELLA WHERE ID=29;UPDATE .....

il ";" funge da separatore dell'sql... e esegue la II parte come nuova istruzione...
@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:29   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Sì, ma se converti con CInt ti rende solo il 29...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:34   #8
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
secondo me se passo

xx.asp?ID=29;update

prende "29;UPDATE..." come stringa...
@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:38   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "@GuyBrush@"

secondo me se passo

xx.asp?ID=29;update

prende "29;UPDATE..." come stringa...
Certom, ma se converti quella stringa ad intero con Cint ti dovrebbe prendere solo il 29 !!!
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:42   #10
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
ok ,mi fido
e nel caso in cui passo

..LOG="PIPPO" ...

@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 10:50   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "@GuyBrush@"

ok ,mi fido
e nel caso in cui passo

..LOG="PIPPO" ...

In ogni caso puoi sempre provare

Nel caso tu passi una stringa puoi verificare che all'interno della stringa non ci sia un apice o un doppio apice (dipende da cosa usi nella query)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 13:14   #12
Mezzetti0903
Senior Member
 
Iscritto dal: Nov 2000
Messaggi: 279
!

Mah... io controllo sempre che in qualunque stringa non siano presenti

Per i campi testuali....
' in questo caso li raddoppio

Per i campi numerici
; (solo per valori numerici nei database) in questo caso li tolgo
--- (il commento) anche questo... via
OR, AND....e compagnia.... e anche eventuali = ( non si sa mai... magari a certe cose non ci ho pensato)

...per il resto dovrei essere appostoo
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero
Mezzetti0903 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 13:58   #13
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
Ragazzi mi fate capire bene questa storia ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 14:03   #14
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
Allora... hai un indirizzo che butta fuori un GET.
esempio

arrivi su

www.sito.it/pagina2.asp?ID=29

passi ID=29 (ti servirà x fare una select in un DB)

FAI CONTO CHE UN "mailintenzionato" cambia l'URL in

www.sito.it/pagina2.asp?ID=29;UPDATE ANAG SET NOME="CARLO"

Nella pagina avrai qualcosa del tipo

conn.execute("SELECT * FROM TABELLA WHERE ID=" & request("ID")

IN QUESTO CASO LA STRINGA CHE VIENE ESEGUITA E' :

SELECT * FROM TABELLA WHERE ID=29 ; UPDATE .....

IL ";" FA PASSARE l'SQL all'istruzione successiva che è l'UPDATE fatto dal lamer...

IN pratica, può iniettare SQL quando vuole... basta che azzecca i nomi delle tabelle.... (che in genere sono gli stessi...)

capito?
@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 14:05   #15
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
è come se fai:

conn.execute("SELECT...")
conn.execute("UPDATE..")
@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 14:19   #16
leon84
Senior Member
 
L'Avatar di leon84
 
Iscritto dal: Jul 2002
Città: Napoli
Messaggi: 1964
P orca miseria ??????????????? Certo che ho capito ...... E non si può risolvere ?
leon84 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 14:20   #17
Mezzetti0903
Senior Member
 
Iscritto dal: Nov 2000
Messaggi: 279
!!

Oppure per i campi di testo per esempio...bisogna controllare gli apici perchè per esempio....

io eseguo la seguente stringa sql e guardo se restituisce un utente...se sì allora gli assegno le autorizzazioni

"SELECT * FROM UTENTI WHERE USER = '"+user+"' AND PASS = '"+pass+"' "

se user e pass non venissero controllate ed avessero il valore

' OR '' = '

la stringa diventerebbe

"SELECT * FROM UTENTI WHERE USER = '' OR '' = '' AND PASS = '' OR '' = '' "

siccome '' = '' è sempre vera la query mi restituirebbe TUTTI i cami del database.... e visto che di solito quello dell'amministratore è il primo ad essere inserito... non si può escludere di avere privilegi di amministratore...

almeno... nelle mie appl è così.... (non ci contate.... è tutto controllato )
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero
Mezzetti0903 è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 20:17   #18
@GuyBrush@
Senior Member
 
L'Avatar di @GuyBrush@
 
Iscritto dal: Apr 2003
Città: Monza
Messaggi: 2639
nel mio caso purtroppo no,,, ma se la query è su un altra tabella (es. quella che gestiscele nwes)... punto a capo...
@GuyBrush@ è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2003, 23:54   #19
edivad82
Senior Member
 
L'Avatar di edivad82
 
Iscritto dal: Nov 2001
Città: Gavirate (Varese)
Messaggi: 7168
solitamente per variabili non filtrate per le query e parametri semi-importanti si usano le sessioni/variabili applicazione oppure si salvano le sessioni in database come se si stesse lavorando su server web in cluster...lasciare i parametri scoperti in questo modo non è mai conveniente...il controllo dei dati da mettere in query è la prima cosa da fare
ma soprattutto evitare il passaggio di stringhe ma solo di indici e interi in modo da poter essere controllati con più facilità
__________________
·.·´¯`·)»Davide«(·´¯`·.·
edivad82:~#/etc/init.d/brain restart - edivad82:~# cd /pub && more beer
edivad82 è offline   Rispondi citando il messaggio o parte di esso
Old 14-05-2003, 00:39   #20
maxithron
Senior Member
 
L'Avatar di maxithron
 
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
se volete

ho un po di spazio web disponibile per fare qualche testing.

anche a me interessa molto questa cosa.

Siete grandi!
maxithron è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:10.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v