13 febbraio 2004 alle 18:18:10 Modificato il 13 febbraio 2004 alle 23:25:21E' importante!!!! ieri il mio sito con aspnuke 1.2 è stato attaccato, hanno inserito news nel sito loggandosi come amministratore. Ho subito bloccato il sito (che ora è offline) per cercare di capire come avessero fatto, non si tratta di sicurezza password o sicurezza database, access o sicurezza server, ma è un bag enorme in aspnuke, ma non solo in aspnuke ma in molti portali anche in php e mysql- mi è bastato una mattinata per indagare ed ho scoperto che Aspnuke è facilmente attaccabile conn SQL injection !! SQL injection non è un programma ma è una tecnica di attacco utilizzando l'SQL e sfruttando eventuali bug nelle costruzioni delle interrogazioni sql ai database. volete una dimostrazione su quanto stò dicendo e quanto mi è capitato sia vero? andate sul vostro sito aspnuke e digitate questa url: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (rimossa x non creare problemi) al posto del dominio e della cartella inserite il vostro sito e al posto di NICK l'userid dell'amministratore, riceverete un messaggio di errore, ma analizzatelo attentamente, c'è la password dell'amministratore e con quella è possibile fare di tutto. Almeno sul mio sito appare.(anzi appariva perchè l'ho messo offline) ora dico io : di questo fatto ne siete a conoscenza? credo proprio di si perchè su questo sito non funziona, e se sì perchè non lo comunicate in pompa magna a tutti? io nell'area download non ho trovato alcuna pach sulla sicurezza. posso sapere il vostro parere al riguardo? e come possiamo fare per proteggerci?
13 febbraio 2004 alle 19:05:15 in includes/addurl-inc.asp
sURL = Trim(sURL) sURL = Replace(sURL,"'","''")
prima di questa strina Set oCn = DBConnexion(DB_MAIN)
romolo Avanzato
125 Discussioni
13 febbraio 2004 alle 19:13:38 I nuke hanno problemi comuni...lo stesso prob lo si trova su phpnuke etc.. solo che sono a versioni piu' avanzate e quindi magari hanno qualche esperienza in piu'. mettici ora che aspnuke è diventato molto utilizzato..... quindi... oggetto di studio !!
cmq l'unico rimprovero è che sul sito ufficiale in versione inglese il problema è stato trattato in modo approfondito e quindi una patch di sicurezza di sicuro sarebbe stata gradita..
cmq ti riporto di seguito una delle soluzioni...scritto da un mio amiketto...praticamente oltre a proteggerti riesce a loggare il malintenzionato con la stringa!!
' ************************************************************************ %> <% ' Add URL or update its hits ' IN : sURL (string) : URL of the website (table urls, field sURL) ' OUT : - Sub AddURL(sURL) Dim oCn, oRs, rSQL, sRequestedURL
sRequestedURL = sURL sURL = LCase(sURL) Set oCn = DBConnexion(DB_MAIN)
If InStr(sURL, "'") > 0 Then 'Sono presenti degli apici nell'url (sql injection ??!!!) sRequestedURL = "Default.asp" 'Mi salvo in tabella (URLS) la stringa incriminata e l'ip della persona. 'Se invece non voglio scrivere nulla nella tabella basta commentare le 2 righe seguenti rSQL = "INSERT INTO urls (uTitle, uURL, uHits) VALUES ('Probabile Attacco da Ip: " & sIP & "' , '" & SQLEncrypt(sURL) & "', 1)" DBExecute oCn, rSQL else rSQL = "SELECT uID, uHits FROM urls WHERE uURL = '" & sURL & "'"
Set oRs = DBRecordSet(oCn, rSQL)
If Not oRs.EOF Then rSQL = "UPDATE urls SET uHits=" & (oRs("uHits") + 1) & " WHERE uID=" & oRs("uID") DBExecute oCn, rSQL Else Dim tURL, sURLName sURLName = Replace(sURL, "http://", "") sURLName = Replace(sURL, "ftp://", "") tURL = Split(Mid(sURL,8), "/") sURLName = tURL(0) tURL = Split(sURLName, ".") If UBound(tURL) < 2 Then sURLName = tURL(0) Else sURLName = tURL(1) End If sURLName = UCase(Left(sURLName, 1)) & Mid(sURLName, 2)
'Modifica per permettere l'inserimento di un nuovo link solo all'amministratore If sURLName <> "" then if IsAuthorized(ROLE_ADMIN) Then rSQL = "INSERT INTO urls (uTitle, uURL, uHits) VALUES ('" & sURLName & "', '" & SQLEncrypt(sURL) & "', 1)" DBExecute oCn, rSQL End If Else sRequestedURL = "Default.asp" End If End If End If
oCn.Close Set oCn = Nothing Set oRs = Nothing
Set oLangXML = Nothing Response.Redirect sRequestedURL End Sub %> 'File modificato da Satup'
incontrami in questo spazio senza margine nel fondo del display che fa da argine a cento secoli volati via come vertigine qualcuno schiacciò play e fu l'origine chissà se il cosmo chiuso dentro le tre doppie vu è verosimile o è un facsimile quando sembra di viaggiare e invece resti immobile tra i totem e i tabù dell'impossibile ma io che mi muovo qui io oltre frontiera io solo in zona straniera sono io fermo alla tastiera ogni sera schermo di vita vera o chimera di essere laggiù là dove non mi trovo e non so più come trovare dove adesso vivi tu che forse sei in ascolto
reck Amatore
41 Discussioni
13 febbraio 2004 alle 20:59:42 ciao romolo sei stato gentilissimo, e lo script che ho già provveduto a sostituire all'originale funziona alla grande, specialmente perchè memorizza anche la stringa utilizzata e l'IP di chi ha operato!!!
>cmq l'unico rimprovero è che sul sito ufficiale in >versione inglese il problema è stato trattato in modo >approfondito e quindi una patch di sicurezza di sicuro >sarebbe stata gradita..
su questo concordo pienamente con te! ed un suggerimento a aspnuke.it inserite subito questa pech nes sito!!! è importantissimo!!!
comunque, leggendo le potenzialità della tecnica SQL Injection, a questo punto mi sorge spontanea una domanda domando: ma realmente gotourl.asp è l'unico file attaccabile e da modificare?? non potrebbero esserci altri file in aspnuke dove possono agire? bisognerebbe cotrollare tutti i file che lanciano le query al database per vedere se sono attaccabili con l'apice maledetto aggiunto alla fine della query?
13 febbraio 2004 alle 21:54:27 In teoria, tutti i files dove viene richiesta una stringa SQL sono attaccabili, gotourl è solo un mezzo per arrivare ad un altro file, il vero tallone di Achille, sono i controlli sugli apici o, sulla lunghezza delle stringhe, perchè, se imposta una stringa a, ipotesi, 20 caratteri, non è più possibile usare gotoUrl, che ne richiede sicuramente molti di più, putroppo, devo dirti che, questi rimedi, sono in definitiva solo dei palliativi, in quanto, se un HACKER (maiuscolo) vuole entrare nel portale, ci entra e basta!!! Chi si diverte a bucare portali come quelli costruiti con AspNuke, non sono certo Hacker, ma, Cracker in fase di pratica o peggio ancora dei Lamer che non hanno un c...o da fare tutto il giorno, per cui, va bene la patch, sia la prima che la seconda. Per quanto riguarda l'informazione, ti do ampiamente ragione, sia noi che Gaetan di AspNuke.com, in questa versione abbiamo mancato un pò, noi come comunità italiana, per inesperienza, ma, come sai, l'esperienza la si fa sul campo, come è successo a PHPNUKE in tanti anni di presenza in rete, credo che alcuni di questi problemi, con la nuova versione, saranno risolti. Ciauzz DJ
--------------- A lavare la testa ai somari, ci si rimette l'acqua e il sapone!
13 febbraio 2004 alle 22:04:17 Grazie, applicate entrambe... mmmmmhh... però non ho capito alcune cose... 1) dopo aver applicato quella di romolo e riprovato con la url suggerita da reck mi rimanda alla pagina del sito default.asp... 2) dove viene memorizzato la stringa utilizzata e l'IP di chi ha operato??? 3) dopo aver inserito nell'includes/addurl-inc.asp anche la patch di Mas245 e riprovando l'url suggerito mi dà questo
'File modificato da Satup' LANG_SQL_ERROR LANG_SQL_ERROR ADODB.Connection error '800a0e78'
Operation is not allowed when the object is closed.
13 febbraio 2004 alle 22:24:36 quella che ho postato io serve solo ad ovviare la sql injection del file gotourl.asp dato che dopo l'attacco di ieri sera ed il defacement ho voluto capire come sono entrati. cmq mettine uno o l'altra
13 febbraio 2004 alle 22:27:03 PER RECK, CANCELLA SUBITO QUELLA STRINGA DAL POST, NON E' CORRETTO LASCIARE UN OGGETTO COSI' PERICOLOSO ALLA PORTATA DI TUTTI!!!! Ciauzz DJ
--------------- A lavare la testa ai somari, ci si rimette l'acqua e il sapone!
13 febbraio 2004 alle 22:28:54 La patch di romolo e' sufficiente a proteggere la gotourl.asp da questo specifico attacco, ed i tentativi di crack li trovi nell'amministrazione dei links. Ciao
--------------- development@aspnuke.it
INVY Avanzato
149 Discussioni
13 febbraio 2004 alle 22:55:27 Consiglio di cancellare con urgenza la stringa che permette un agevole attacco SQL injection.