Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
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


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Alcune partite NBA saranno trasmesse in ...
Intel Core 13000 e 14000 aumentano uffic...
Gemini sta per arrivare in Google Maps: ...
2 minuti per vedere le 27 offerte imperd...
Ray-Ban Meta Display: tecnologia sorpren...
Un mini PC a prezzo stracciato, non cerc...
Al via i coupon nascosti di ottobre: qua...
Ferrari Elettrica si aggiorna solo in of...
Doppio sconto sugli smartphone top Xiaom...
Samsung è sempre più prota...
ChatGPT ha pregiudizi politici? Ecco cos...
Un solo iPhone rubato ha portato alla sc...
Xiaomi 17 Ultra sta arrivando: ecco come...
Il Motorola Edge 70 non ha più se...
Alcuni Galaxy S26 utilizzeranno il chip ...
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: 14:51.


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