SQL Injection vulnerabilità della rete tramite attacco, lo script JS, HTML scripting attacchi sembrano giocare su più forte. Uno dopo l'altro dei tanti siti sono afflitti da tali attacchi, non come le vulnerabilità host può essere riparato subito, l'attacco dal Web in modo che noi, la prevenzione o di riparazione che porta un sacco di disagi. Un webmaster è il più doloroso questo. Quanto è forte la tua password per l'attaccante è sempre stato disponibile, ma come possiamo raggiungere la sicurezza reale? In primo luogo, non la password e il link tua vita, in secondo luogo, il SUPERMASTER PWD solo tu conosci meglio in terzo luogo, assolutamente necessaria per migliorare il vostro programma di Web site. Ma come possiamo migliorare, sarà il nostro obiettivo finale di questo articolo.
Sicurezza, come fare la sicurezza? Protezione Want è necessario sapere come attaccare l'altro. Molti articoli sono scritti per catturare un particolare sito, infatti, il modo dei loro attacchi, ma anche quanto segue:
1. Attacco di scripting semplice
Tali attacchi dovrebbero guaio è noioso. Ad esempio ****: alert (), così, a causa di un filtro non è vicino a ciò che l'attaccante non solo disponibile, ma può essere dannoso per lo scopo. Molti siti di servizio presenti gratuito o un programma sul proprio sito non è strettamente un problema di filtrazione.
2. Pericolosi attacchi di scripting
Tali attacchi sono stati allo script può rubare l'amministratore o informazioni di altri utenti sulla misura. Per esempio sappiamo tutti, rubare i cookie, utilizzare lo script sul client locale scrivere di più.
3. Sfrutta Sql Injection
Si può dire che questo attacco è di partire da Dongwangluntan e BBSXP. Filtering utilizza SQL caratteri speciali non sono stretti, e attacchi di cross-query di database. Per esempio:
http://127.0.0.1/forum/showuser.asp?id=999 e 1 = 1
http://127.0.0.1/forum/showuser.asp?id=999 e 1 = 2
http://127.0.0.1/forum/showuser.asp?id=999 e 0 (select count (*) da admin)
http://127.0.0.1/forum/showuser.asp?id=999''; dichiarare una serie sysname @ @ a =''+''xp_
''Cmdshell''exec @ a''dir c :''---& aiuto = 9
Ottenere la password di amministratore ha il controllo si intende tutta la stazione non ha bisogno di essere l'ospite di privilegi, ma anche per questo passaggio per fare un sacco di prefigurazione. SQL Injection attacchi simili per i modi ei mezzi molti filtri diversi file non è tenuto a chiudere la query in modo diverso. Quindi, per fare un filtro completo di caratteri in cui le procedure non sono lo sforzo successivo è impossibile.
Attacchi di iniezione 4. Remoto
Un sito del cosiddetto filtro solo presentare una semplice pagina JS modulo di filtraggio. Per l'utente medio, non è necessario prevenire, l'attacco premeditato riguarda, sembrano non essere un tale effetto di filtraggio. Spesso si dice che l'attacco POST è un esempio. Inserito da attacchi remoti informazioni illecite al fine di raggiungere lo scopo.
Attraverso la descrizione di sopra dei metodi di attacco, che generalmente intendiamo il modo in cui gli aggressori, la seguente descrizione ci concentriamo sulla partenza, come prevenire efficacemente gli attacchi di script!
Allora si parte dalle più semplici:
Contro gli attacchi di script
gli script JS HTML e script nella prevenzione degli attacchi è molto semplice: Server.HTMLEncode (Str) bin. Naturalmente non piangere, come può essere? È per avermi permesso di stazione non mi piace tutto aggiungere a filtro esaurito? Al fine di facilitare il filtraggio, abbiamo solo bisogno di script HTML e script JS per filtrare alcuni personaggi chiave può essere : il corpo procedura (1) come segue:
'La seguente è una funzione di filtro
'I seguenti sono esempi di applicazione
Username = CHK (replace (Request ("nome utente "),"''",""))
Includere la funzione scritta usando la pagina pubblico, così l'efficienza è il migliore.
Procedura corpo (1)
Inoltre, vale la pena la nostra attenzione è che molti utenti del sito di registrare o modificare le informazioni per la pagina utente è anche una mancanza di script di filtraggio, o solo in un filtro, modificare le informazioni registrate nello script post-possono ancora attaccare. I dati presentati da un utente per rilevare e filtrare, il corpo del programma (2) come segue:
'La seguente è una funzione di filtro
Se Instr (richiesta ("username "),"=") 0 o
Instr (richiesta ("username "),"%") 0 o
Instr (richiesta ("username"), chr (32)) 0 o
Instr (richiesta ("username "),"?") 0 o
Instr (richiesta ("username "),"&") 0 o
Instr (richiesta ("username "),";") 0 o
Instr (richiesta ("username "),",") 0 o
Instr (richiesta ("username "),"''") 0 o
Instr (richiesta ("username "),"?") 0 o
Instr (richiesta ("username"), chr (34)) 0 o
Instr (richiesta ("username"), chr (9)) 0 o
Instr (richiesta ("username"), "") 0 o
Instr (richiesta ("username "),"$") 0 o
Instr (richiesta ("username ")," ") 0 o
Instr (richiesta ("username ")," ") 0 o
Instr (richiesta ("username "),"""") 0 allora
Response.Write "amico, il tuo nome utente contiene caratteri non validi, il cambiamento, grazie al ritorno"
Response.End
End If
Procedura corpo (2)
Al fine di fornire il rendimento che cerchiamo di filtrare ulteriormente i contenuti delle procedure, così l'efficienza di filtrazione dei vari parametri sarà ampiamente aumentata: come il corpo del programma (3)
'A seguito del programma principale
dim Bword (18)
Bword (0 )="?"
Bword (1 )=";"
Bword (2 )=" "
Bword (3 )=" "
Bword (4 )="-"
Bword (5 )="''"
Bword (6 )=""""
Bword (7 )="&"
Bword (8 )="%"
Bword (9 )="$"
Bword (10 )="''"
Bword (11 )=":"
Bword (12 )="|"
Bword (13 )="("
Bword (14 )=")"
Bword (15 )="--"
Bword (16) = "chr (9)"
Bword (17) = "chr (34)"
Bword (18) = "chr (32)"
ERRC = false
'I seguenti sono alcuni esempi di applicazione
per i = 0 a UBound (Bword)
If InStr (FQYs, Bword (i)) 0 allora
ERRC = true
End If
prossimo
se poi ERRC
Response.Write ""
Response.End
End If
Procedura corpo (3)
Con la funzione di filtro sopra che è possibile inserire l'applicazione di eventuali necessità di filtrare funzione di filtro direttamente su di esso. Questo ci porta al ripristino di lavoro decisamente semplificata.
Inoltre, più di quanto io vorrei ricordare ancora una volta, alcuni siti UBB fare poco filtro di conversione emoticon appariranno anche quando il problema è nascosto perché non è facile da trovare:
Come ad esempio:
Noi modificare le etichette di testo,
Non so capire, prima di una sola offerta e le procedure previste dal virgolette di sinistra, le virgolette singole utilizzato nel secondo e ha chiuso il marchio diritto virgolette, così come il processo di output:
attacco ARP non è un virus - e quindi quasi tutti i software anti-virus per tutti impotenti, ma ne vale la pena di un virus - perché rallenta la luce può provocare delle comunicazioni, la paralisi della rete, di peso causa perdita di informazioni. Nel corso degli anni, l'attacco ARP è sempre esistita, ma non è una buona soluzione. Molti utenti di Internet soffrono, gestione del personale di rete è in grado di avviare, miserabile. In questo studio, l'analisi del protocollo ARP e il principio di truffa, questa carta presenta come implementare gli attacchi ARP, come determinare l'attacco ARP è la sofferenza, come prevenire e risolvere attacco ARP.
1.ARP accordo e teoria inganno
(1) Ethernet funziona. Ethernet nel pacchetto dati viene inviato, in primo luogo dobbiamo split (il più grande raggruppamento di imballaggi), imballaggi (nel livello di rete per aggiungere l'indirizzo IP sorgente e l'indirizzo IP di destinazione a livello di Data Link per aggiungere l'indirizzo MAC sorgente e indirizzo MAC del prossimo hop), in un flusso di bit binari, il processo mostrato nella Figura I-1. I pacchetti raggiungere l'obiettivo, dopo l'attuazione del processo di invio del lato opposto, il flusso di bit binari nel telaio, pacchetto di soluzioni (Link strato di dati del primo gol della MAC viene confrontato con MAC la stessa scheda di rete locale o MAC broadcast, in quanto lo stesso è intestazione del frame Rimuovi, quindi passare sui pacchetti di livello di rete o scartate; Network Layer indirizzo IP di destinazione viene confrontato con la stessa macchina, lo stesso continuerà ad affrontare, altrimenti scartato). Se il mittente e il destinatario della stessa rete, il salto successivo MAC è l'obiettivo del MAC, come il mittente e il destinatario non è sulla stessa rete, il salto successivo MAC è il gateway MAC. Da questo processo non è difficile da trovare, unico obiettivo Ethernet velocità di trasmissione dati di indirizzo IP che non è sufficiente, devono anche conoscere l'indirizzo MAC del salto successivo, che richiede l'aiuto di un altro sguardo l'accordo, ARP (Address Resolution Protocol).
Figura I-1 di dati imballaggio e disimballaggio
2) ARP funziona. Computer prima di inviare pacchetti di dati, rispetto al target indirizzo IP, di determinare l'origine e la destinazione non sono lo stesso segmento, come ad esempio stesso segmento di rete, l'obiettivo del pacchetto MAC, se non sulla stesso segmento di rete, il pacchetto gateway MAC. Prima del confezionamento, vedere cache ARP della macchina per vedere se non c'è hop corrispondente accanto IP e le voci di mapping MAC, se l'incapsulamento diretto, se non poi inviare il pacchetto di query ARP. query ARP e pacchetti di risposta del formato come mostrato nella figura I-2, il pacchetto di query "indirizzo di destinazione Ethernet" per l'indirizzo 0xffffffffffff broadcast, "indirizzo Ethernet sorgente", l'indirizzo MAC della scheda di rete basata di macchine, "Tipo di frame" è 0x0806 detto risposta ARP o richiesta "," tipo di indirizzo Ethernet hardware del 0x0001, ha detto, "tipo di protocollo" per tale indirizzo IP 0x0800, "OP" per la richiesta o la risposta ARP, il valore dei pacchetti di richiesta ARP PO di 1, la risposta ARP pacchetto di OP è di 2 ", l'indirizzo Ethernet del mittente," l'indirizzo MAC per il mittente "IP del mittente", come l'indirizzo IP del mittente ", l'indirizzo Ethernet scopo" qui per 0x000000000000, "l'IP scopo" per la controllare l'indirizzo MAC di IP. Invia questo pacchetto di trasmettere alla rete, tutti i computer in LAN ricevono questo pacchetto, solo l'indirizzo IP locale per la "fine della PI", il computer risponde a questo pacchetto, e rispondere a questo pacchetto. Quando inizio inviare Duan Fang ricevuto questa pacchetto di risposta ARP, l'accesso al bersaglio IP è l'indirizzo MAC corrispondente e quindi i pacchetti di dati possono essere incapsulati.
Figura I-2 ARP query e formato del pacchetto di risposta
(3) inganno ARP. Nel numero di sequenza TCP e il numero di riconoscimento attraverso i vari settori, l'attuazione del three-way handshake per assicurare l'affidabilità della trasmissione dei dati, ARP è un protocollo stateless, il che significa che, con o senza l'invio di richiesta ARP inviato alla macchina finché la risposta ARP pacchetto, il computer non aggiungere la convalida a ricevere, e aggiornare le loro cache ARP. Dopo circa ARP funziona finché l'intenzione di riempire figura I-2 in determinati campi, può ottenere l'effetto di un attacco ARP: conflitto di indirizzi IP, inganno ARP, gli attacchi ARP.
P affrontare i conflitti. Locale l'indirizzo IP del computer rileva se i metodi utilizzati in Internet è lo scopo degli indirizzi IP della macchina come l'indirizzo IP, invia un pacchetto di richiesta ARP, se la risposta ricevuta, indica l'indirizzo IP è stato utilizzato in Internet, pop-up di indirizzi IP da utilizzare Nella finestra di dialogo rilasciare l'indirizzo IP della macchina. ARP attaccante approfittare di questo principio, con arbitrario indirizzo MAC (non essendo un attaccante vero e proprio indirizzo MAC) pieni di "indirizzo del mittente Ethernet" campo, utilizzare l'indirizzo IP del pirata "il campo era pieno di" IP del mittente utilizzati da indirizzo reale dell'attaccante MAC di riempire il "indirizzo Ethernet scopo" di campo, utilizzare l'indirizzo IP del pirata era piena di "IP scopo" campo, OP del valore del "2", come mostrato nella figura I-3 . Quando l'attaccante dopo aver ricevuto questa risposta ARP, ha ritenuto che l'indirizzo IP della macchina sulla rete è stata utilizzata, pop-up nella finestra di dialogo conflitti di indirizzi IP.
Figura I-3, conflitti di indirizzi IP del pacchetto di risposta ARP
ARP barare: come mostrato nella figura I-4, PC1 è l'aggressore, l'obiettivo dell'attaccante è "PC2 interrompere la comunicazione con il gateway." PC1 genera un pacchetto di risposta ARP, "l'indirizzo IP del mittente" riempire come l'indirizzo IP del gateway ", l'indirizzo Ethernet mittente" riempire un indirizzo non-gateway MAC (questo indirizzo può essere generato in modo casuale), "Obiettivo IP" riempire l'indirizzo IP di PC2, "l'indirizzo Ethernet scopo" riempire l'indirizzo MAC del PC2. Host PC2 ricevere al più tardi dopo il pacchetto di risposta ARP userà questo errato indirizzo MAC gateway per aggiornare la loro tabella di ARP cache, dopo l'indirizzo MAC del PC2, dopo che errore incapsulato, con conseguente pacchetto dopo il confezionamento non può correttamente raggiungere il gateway; PC1 simile re-inviare un messaggio errato pacchetto di risposta ARP al gateway ", il mittente IP" immettere l'indirizzo IP in PC2 "indirizzo, Ethernet del mittente", compilare l'indirizzo MAC di un non-PC2 (il presente indirizzo può essere generato in modo casuale), "Obiettivo IP" inserire l'indirizzo IP del gateway. Gateway risposta ARP ricevuto tali informazioni, vengono salvate nella cache di dati errati PC2 mappa. PC1 e PC2 al gateway invia periodicamente un tale pacchetto, in modo che l'invecchiamento della loro tabelle ARP, quindi impediscono loro di raggiungere lo scopo della comunicazione.
Figura I-4 ARP barare diagramma
ARP attacco. Per gli attacchi centrale (attacco man-in-the-middle) e ARP, come barare, solo PC1 invia richiesta ARP, che compila il "indirizzo mittente Ethernet" non è generato in modo casuale, ma sostituire il PC1 Macchine per l'indirizzo MAC, aprire il routing PC1 - modificare (aggiungere), l'opzione del Registro di sistema HKEY_LOCAL_MACHINE MACH INE SYSTEMCurrentControlSetServicesTcpipParametersIPEnableRouter = 0x1, mentre toccando il software installato sul PC1, PC2 e intercettare tutte le comunicazioni tra il pacchetto di gateway.
2. Come implementare l'attacco ARP
Qui ci sono due attacchi ARP di utilizzare il software, la topologia mostrata nella figura I-5.
Figura I-5 ARP attacco
Il software è utilizzato soprattutto per il primo attacco, interruzione del traffico di rete normale, come mostrato nella figura I-5, 2 nella macchina virtuale da installare "magistrato" software di rete, distruggono la macchina virtuale 1 e la normale comunicazione tra la macchina reale esperimento passi sono i seguenti.
Configurato correttamente l'indirizzo IP del computer. Virtual Machine 1 carta di tipo Bridged, l'indirizzo IP è 192.168.1.220, maschera 255.255.255.0, gateway 192.168.1.1, DNS è 218.2.135.1. Virtual Machine 2 tipi carta Bridged, l'indirizzo IP è 192.168.1.210, maschera 255.255.255.0, gateway 192.168.1.1, DNS è 218.2.135.1. L'indirizzo IP della macchina reale è 192.168.1.200, maschera 255.255.255.0, gateway 192.168.1.1, DNS è 218.2.135.1.
2 nella macchina virtuale per installare WinPcap. Estratto "magistrati di rete. Rar file", doppio clic su "WinPcap30.exe file" per avviare l'installazione WinPcap.
2 nel software della macchina virtuale è installato il magistrato rete. Fare doppio clic su "versione magistrato Network crack 2.8. Exe" per installare il magistrato di rete.
Eseguire il magistrato di rete. magistrati di prima esecuzione, aprire la finestra di dialogo mostrata in Figura I-6, il che suggerisce che i parametri di monitoraggio.
Figura I-6 controllo dei parametri
Perché solo un blocco di rete, selezionare la casella di controllo superiore della carta, fare clic su "OK". Come mostrato nella figura I-7 per aprire la selezione gamma di controllo finestra di dialogo, specificare l'intervallo di monitoraggio è elencato nella scheda in cui tutti i disponibili sottorete indirizzo IP, fare clic sul grafico in "Aggiungi / Modifica", aggiungendo il campo di applicazione, fare clic pulsante "OK".
Figura I-7 controllare l'ambito di scelta
Attacco prima della prova. 1 su una macchina virtuale, aprire la finestra di DOS, digitare ping 192.168.1.200-t, continuo ping l'indirizzo IP della macchina reale può essere trovata è attraverso il. Non chiudere la finestra.
Ha cominciato ad attaccare. Magistrato di software in grado di monitorare la rete alla stessa sottorete a tutti gli host online magistrato nell'interfaccia di gestione della rete, fare clic destro sulla macchina reale, dal menu di scelta rapida, selezionare "Gestisci manualmente", come mostrato nella figura I-8.
Figura I-8 magistrato interfaccia di gestione
Come illustrato nella figura I-9 nella finestra di dialogo, selezionare la terza opzione "contro tutti gli altri host ...", cliccare" Start ", poi la macchina virtuale si possono trovare tra 1 e reale ping test della macchina Start Suggerimenti "Richiesta scaduta", la comunicazione interrotta. ambiente reale, è anche possibile semplicemente selezionare l'opzione "Proibizionismo e connessione host chiave ..." e scegliere il "master key", aggiungendo l'indirizzo del gateway, in modo che il computer attaccato e la connessione gateway verrà interrotto e il computer LAN comunicazione ininterrotta tra.
Figura I-9, computer di gestione manuale
secondo comma, del software utilizzato per rubare informazioni preziose, come mostrato nella figura I-5 nella macchina virtuale per installare un "Cain & Abel" software, minando alla macchina vera e propria macchina virtuale 1 e la normale comunicazione tra le misure sperimentali sono le seguenti.
Installato sulla macchina virtuale un Cain & Abel. Fare doppio clic sul file "ca_setup.exe per avviare l'installazione, l'installazione vicino alla fine, quando verrà richiesto di installare WinPcap4.0, come mostrato nella figura I-10, selezionare" Installa ", per avviare l'installazione WinPcap4.0.
Figura I-10 per installare WinPcap4.0
Esegui Cain & Abel. Fare doppio clic sul desktop, icona "Caino, aprire la Cain & Abel interfaccia di gestione, scegliere l'interfaccia di gestione in" Start / icona "Stop Sniffer, come mostrato nella figura I-11 per iniziare la cattura dei pacchetti.
Figura I-11 ha cominciato Sniffer
Sotto la password per l'hub. Fare clic sulla mappa I-11 nella parte superiore della scheda "Sniffer, allora clicca qui sotto la scheda" Password, e inizia a catturare le password e le informazioni sensibili, comprese le e-mail, Telnet, FTP e così via. Nella macchina virtuale 2 aprire un servizio Telnet, in telnet 192.168.1.210 macchina reale, e poi inserire user e password, come mostrato nella Figura I-12 di navigazione a sinistra bar per catturare un'informazione tempestiva Telnet.
monitor Figura I-12 informazioni sensibili
Fare clic sulla barra di navigazione a sinistra della "Telnet", l'elenco nella colonna di destra, fare clic con la cattura della voce, il menu di scelta rapida, selezionare "View", aperto come illustrato nella figura I-13 notebook di carta, da difficile non vedere il nome utente è amministratore, password di Cisco. La cifra per ogni lettera della parola l'amministratore spettacolo due volte, perché una volta un telnet echo.
Figura I-13 di catturare la password di file
La password per l'ambiente switch. Solo molto facile da ottenere la password in quanto la macchina virtuale macchina virtuale 1 e 2, e le macchine reali sono collegati alla scheda di rete del computer è vero, l'equivalente di tutti collegati in un hub, l'ambiente reale, più spesso interruttori, due interruttori non host o un host e il gateway per passare il traffico tra l'host dell'attaccante. Quindi bisogno di usare l'inganno ARP, fare clic su come mostrato nella figura I-12 sotto la scheda "ARP, quindi fare clic su" Aggiungi a lista "icona della barra degli strumenti, come mostrato nella figura I-14.
Figura I-14 per aumentare ARP truffa alla lista
Aprire le voci ARP come mostrato nella figura I-15, a sinistra per selezionare un indirizzo IP, il diritto di selezionare un indirizzo IP, host due indirizzi IP sarà ingannato.
Figura I-15 Selezione inducendo in errore il computer
Fare clic su "OK" per tornare, quindi fare clic sul grafico I-11, come mostrato nella barra degli strumenti "Start / icona" Stop Sniffer a destra di "Start / icona" Stop ARP per avviare l'attuazione di inganno ARP, come mostrato nella Figura I-15 Selezione la comunicazione tra i computer di un trasferimento dalla macchina virtuale, la macchina virtuale si può naturalmente ottenere informazioni sensibili tra di loro esplicito. Vista in questa luce i rischi switch di rete di sicurezza esistenti.
3. Come determinare la sofferenza ARP attacco
attacco di spoofing ARP sopra descritte non causerà la congestione della rete, ma di perdite, seguito con l'introduzione di una soluzione. Determinare se vi è il primo metodo di attacco ARP è semplice, attenersi alla seguente procedura.
ping continuo non può accedere l'indirizzo IP. Nel computer problema (Virtual Machine 1) della finestra di DOS, digitare "ping" 192.168.1.200-t, viene utilizzata per verificare la connettività di rete; 192.168.1.200 computer non è normale comunicazione (questa è la macchina reale), il progetto attuale sostituito non può accedere lo stesso segmento di indirizzo IP del computer di destinazione. Se si soffre di attacchi ARP, la schermata verrà chiesto di "Richiesta fuori tempo".
Nel computer interessato (Virtual Machine 1) precedente per aprire un'altra finestra di DOS, digitare "arp-d", arp è un comando DOS, per risolvere l'indirizzo IP del corrispondente indirizzo di scheda di rete MAC-d per cancellare la cache di tutti gli IP della macchina e l'indirizzo MAC corrispondente. Se si trova che Fase 1 della finestra del contenuto in una costante "Risposta da ... ...", il protocollo ARP che sono stati oggetto di attacchi, ora è stata normalizzata, Se solo ci fosse un "Risposta da ... ..." del pacchetto, la schiena è diventata un "tempo Richiesta out" i pacchetti, e quindi il computer è sottoposto a continui attacchi ARP.
4. Come prevenire e risolvere ARP attacco
soluzioni di attacco ARP vario, ma a causa di vincoli vari, ben poco può essere attuata alla fine, anche una sorta di non trovare applicazione. Le seguenti soluzioni non esaustive, ma non importa come l'attuale dotazione hardware di rete, sarà in grado di trovare la soluzione più adatta.
Metodo 1: dopo che un giudice ha trovato, ARP attacchi, se l'attacco persiste, l'attuazione del computer della vittima di "arp-d", quindi l'attuazione di "arp-a",-un ruolo viene visualizzata sul computer tutte le cache ARP . Da cui possiamo trovare alcuni record, un record è la porta o per accedere al host di destinazione, c'è un altro record, ci possono essere diverse. Più che della realizzazione di vari "arp-d", "arp-a", sintesi, è essenzialmente la più grande pezzo di record ARP indirizzo IP del vero attaccante.
Il vantaggio: è semplice, adatto a quasi tutte le ambiente di rete, senza alcun software di supporto e non richiede la conoscenza della gestione della rete sono molto professionali, è possibile identificare l'aggressore, poi l'attaccante per l'isolamento della rete. Svantaggio se l'attaccante è solo distruzione, non per fini di controllo, "arp-a" vedere nessun record affidabile del.
Metodo 2: Nel dispositivo di destinazione e il computer vittima indirizzo IP e MAC, rispettivamente, l'indirizzo statico vincolante. Per esempio, l'attuazione del computer:
"Arp-s 192.168.1.1 00-aa-00-62-C6-09"
Nelle apparecchiature di commutazione o di instradamento (in cui solo le apparecchiature di Cisco per esempio) per eseguire:
"Cisco-6.509 (config) # arp 192.168.1.2 0009.6be2.3ca3 ARPA"
La necessità di proteggere il dispositivo di destinazione indirizzo IP e MAC address vincolante per l'attacco illegale voce ARP senza fori. Non tutti gli utenti hanno il diritto a se stessi, alle porte di utilizzare l'indirizzo IP e MAC address vincolante, ma i clienti si può fare, almeno in un proprio computer all'indirizzo IP del gateway e MAC address vincolante essere il migliore fatto un file batch ogni volta che si avvia il computer, tutti l'attuazione del file, utilizzando questo metodo può efficacemente evitare l'attacco la perdita secondo.
Questo metodo ha il vantaggio di applicazione relativamente su piccola scala della rete. Inconveniente è la difficoltà di attuazione, più grande, di più se l'host di Internet, e le modifiche ospite frequente, come le università di questo gruppo ogni anno e gli studenti laureati di nuovo da segnalare, ancora legata al carico di lavoro enorme, di difficile applicazione; troppo legato attrezzature influenzerà la velocità di esecuzione e ridurre l'efficienza, anche attacco ARP non inciderebbe Internet, ma un gran numero di pacchetti ARP inviati, o accedere ad un sacco di banda utile; attrezzature necessarie per supportare la funzione statica vincolanti.
Metodo 3: Utilizzare la tecnologia Dynamic ARP Avvocato, combinata con le funzioni di DHCP, IP e MAC per raggiungere l'associazione automatica. Simile al metodo e il metodo 2, ma di legame è fatto automaticamente, e possono essere dispiegati nel switch layer di accesso, il passaggio illegale pacchetto ARP verranno scartati, gli amici interessati, per trovare documentazione tecnica relative attrezzature.
Il vantaggio è il modo migliore per risolvere attacco ARP, non hanno bisogno del contributo di gestione, i pacchetti ARP illegale non può accedere alla rete. Non c'è né male né influire sulle prestazioni della rete. Svantaggio è quello di richiedere l'amministratore ha una migliore tecnologia, ha chiesto il supporto delle apparecchiature di rete, i dispositivi Cisco supportano questa funzione almeno altri tre (poche imprese sul mercato interno nel livello di accesso utilizzando i tre dispositivi), molti produttori di apparecchiature non è ancora supportato.
Metodo 4: switch Managed, con un minuto è possibile trovare l'aggressore. 1 nella soluzione precedente, è possibile trovare l'indirizzo MAC di destinazione IP non è un vero e proprio MAC, l'indirizzo MAC di questa nota, se il MAC è "0050.bae3.2305", nel switch gestiti (in cui solo le apparecchiature di Cisco esempio) da eseguire:
"Cisco-2950 # show | arp comprendono 0050.bae3.2305
Internet 10.168.168.9 239 0050.bae3.2305
ARPA FastEthernet1/17 "
La prima linea è l'attuazione dell 'ordine, un semplice "arp show" mostrerà tutti gli interruttori imparare indirizzi MAC, MAC attacco è molto difficile da trovare, "| 0050.bae3.2305 comprendono" giocare una funzione di filtro, visualizzare solo la riga corrispondente . La seconda linea è l'implementazione dei risultati, troverete l'indirizzo MAC dal porto Fa1/17. Trova la porta l'ospite si trova corrispondente ad attaccare la fonte, se la porta non è collegato ad un computer, ma un altro switch, i metodi di ripetere fino a trovare il computer finale.
Vantaggio del metodo è il più fattibile per attuare più velocemente, tutti gli switch gestiti supportano questa caratteristica, fortemente raccomandato. Inconveniente è che ci sono molte unità utilizzare ancora il switch non gestito o hub.
Metodo 5: switch non gestito o hub del caso, è possibile utilizzare 10 minuti di tempo per trovare l'aggressore. Essere computer dell'attaccante (Virtual Machine 1) di aprire due DOS finestra, una finestra per l'esecuzione del "ping" 192.168.1.200-t, un'altra finestra DOS intermittente attuazione di "arp-d", se un certo numero di Taiwan e in Africa Network tubo di tipo switch o hub, a sua volta tagliato il loro potere, quando divenne la finestra DOS seconda parte di un sostenuto "Risposta da ... ...", quindi si può concludere da questa fonte dispositivi di attacco di rete ARP. Ha preso per ripristinare l'alimentazione del dispositivo, il cavo di tirare giù una radice, quando trova una finestra DOS secondo di una sostenuta "Risposta da ... ...", allora si può concludere che il cavo di rete è collegato apparecchiatura è ARP attacco fonte. Se questo metodo di ricerca lenta, è possibile utilizzare la ricerca binaria, cioè la metà di una linea di tiro, che misura quanto generalmente non più di 10 minuti si può trovare la fonte attacco.
Vantaggio del metodo è adatto per quasi qualsiasi ambiente di rete. Svantaggio è che l'attuazione di un po 'duro, il miglior tipo di interruttore o la rete ha sostituito.
Metodo 6: comune autonomo user-salvataggio. In qualità di utenti Internet, la rete non possa riparare in tempo per risolvere, scrivere un file batch per eseguire il computer può risolvere il problema attacco ARP. file batch come segue:: un
Arp-d
1.1.1.1 ping-n 1-w 100
Vai a un
Per i file di testo come a.bat e quindi fare doppio clic sul attuazione del computer dell'utente si aprirà una finestra DOS, il programma del ciclo, non chiudere la finestra attacchi ARP può risolvere il problema. Se il metodo di rimozione ARP è troppo lento, è possibile modificare la precedente 100 (per 0,1 s) al valore desiderato.
Questo metodo ha il vantaggio di attacco ARP utente comune il problema può essere risolto, per quasi qualsiasi ambiente di rete. Inconveniente è la frequente in cache ARP, ARP pacchetti broadcast per inviare frequente, potrebbe presentare un onere supplementare per il computer e rete.
Se l'immagine non esiste, quindi il tag si attiva onerror esecuzione di script. Per le virgolette sono stati il filtraggio dei siti, come qui, completo di virgolette doppie. **** Per il campo filtrato, e solo alert () anche può. Quindi dobbiamo filtro per filtrare completamente, non danno l'attaccante la possibilità di lasciare una traccia.
Prevenire sfrutta SQL Injection
Si può dire qui sembra essere il focus del intero articolo. Vulnerabilità di SQL Injection sulla diversificazione rende anche la protezione del processo dobbiamo pensare su ancora un po '. SQL Injection di fronte a forti "offensiva", quello che alla fine del filtro?
Il rischio di alcuni caratteri comunemente usati sono
Database Discriminazione fields''closed
- Mark alcuni dei annotazione database
# Alcune annotazioni database segni
"Può portare a errori,
Cross directory
carattere 3221143836nicode codifica caratteristiche
$ Può essere utilizzato per l'etichetta variabile
/ E lo stesso
NULL attento voce "vuota il rischio di trattamento può portare al database o sistema di errore, errore di overflow utilizzare la struttura.
Con and''to spazio costruire injeciton sql
= & Se il secondo parametro può essere riscritto querystr.
(1) dal più generale. Exploit di SQL Injection di vista: nome utente e password sui problemi di filtraggio, come ad esempio:
Autore: Nome utente:''o''''='' password dell'utente è:''o''''=''
A partire dal processo, si può venire a, il database seguente
Sql = "SELECT bin conf di backup dei dati di configurazione generate.sh eshow_sitemap.html log maint sitemap.html svn LUSERS DA DOVE tmp ='''' Username e Password o''''='''' ='''' o ''''=''''"
In questo modo, così, SQL server restituirà tutti i record LUSERS tavolo, mentre lo script ASP sarà scambiato per un utente malintenzionato di entrare in un LUSERS il primo record nella tabella, che permette all'attaccante di il nome di login dell'utente sito web. Sembra evitare questo tipo di iniezione è molto semplice:
Utilizzare la seguente procedura può essere raggiunto, il corpo del programma (4)
strUserName = Replace (Request.Form ("username"), "''''", "''''''''")
strPassword = Replace (Request.Form ("Password"), "''''", "''''''''")
Procedura corpo (4)
(2) per prevenire gli attacchi SQL injection, il primo passo è quello di utilizzare una varietà di mezzi di controllo di sicurezza dall'oggetto richiesta ASP (Reques, Request.QueryString, Request.Form, Request.Cookies e Request.ServerVariables) l'input dell'utente, per garantire che il comando SQL affidabilità. Specifiche misure di sicurezza variano in base ai DBMS.
attacchi di SQL injection può danneggiare l'ambiente dipende dal software del sito e la configurazione. Quando il server Web per l'operatore (dbo) delle identità per accedere al database, utilizzando attacco SQL injection, che potrebbe rimuovere tutte le forme, creare forme nuove, e così via. Quando il server di super utente (SA) per accedere al database di identità, con attacco SQL injection, che potrebbe controllare l'intero server SQL, in alcune configurazioni, un utente malintenzionato può anche creare il proprio account utente di modificare completamente il database si trova nel server di Windows.
Come ad esempio:
http://127.0.0.1/forum/showuser.asp?id=999''; dichiarare una serie sysname @ @ a =''+''xp_
''Cmdshell''exec @ a''dir c :''--& aiuto = 9
http://127.0.0.1/forum/showuser.asp?id=999''; dichiarare una serie sysname @ @ xp''a =''+
''_cm''+'' Dshell''exec @ a''dir aiuto :''--& c = 9
Può anche svolgere come: net user fqy fqy / aggiungere questo comando. Naturalmente questo richiede l'esecuzione dello stato attuale deve essere Sa, o che attaccano solo un host virtuale, vi consiglio di fermarsi qui.
Per alcuni siti per la macchina di utilizzare la porta 80 per prevenire attacchi da parte della macchina direttamente per ottenere i diritti amministrativi, è diventato essenziale. Filtro sulla xp_cmdshell diventare il primario, molti siti utilizzano le procedure di GET e POST o GET per inviare i dati, mescolati, e per questo, diamo un modo per impedire procedura di SQL injection GET condotta: come il corpo del programma (5)
fqys = Request.ServerVariables ("QUERY_STRING")
nothis dim (18)
nothis (0) = "net user"
nothis (1) = "xp_cmdshell"
nothis (2) = "/ add"
nothis (3) = "% 20master.dbo.xp_cmdshell exec"
nothis (4) = "amministratori localgroup netto"
nothis (5) = "selezionare"
nothis (6) = "count"
nothis (7) = "ASC"
nothis (8) = "char"
nothis (9) = "a metà"
nothis (10 )="''"
nothis (11 )=":"
nothis (12 )=""""
nothis (13) = "inserire"
nothis (14) = "delete"
nothis (15) = "drop"
nothis (16) = "troncare"
nothis (17) = "da"
nothis (18 )="%"
ERRC = false
per i = 0 a UBound (nothis)
If InStr (FQYs, nothis (i)) 0 allora
ERRC = true
End If
prossimo
se poi ERRC
Response.Write ""
Response.End
End If
Procedura corpo (5)
Voglio punto l'affermazione è: La procedura sopra è un metodo GET sui dati presentati dal filtro, non si applicano ciecamente.
Come gli altri oggetti dalla richiesta ASP (Reques, Request.QueryString, Request.Form, Request.Cookies e Request.ServerVariables) metodo di attacco dei metodi di input da parte dell'utente, in gran parte concentrati nella variabile di input script è il numero atteso di variabili (ID ), ovviamente, non possiamo limitarci a guardare il numero di variabili, quali:
''Http://127.0.0.1/systembbs/showtopic.asp?tid=99&name=abc e di sinistra (userpasswor
d, 1) =''una
''Http://127.0.0.1/systembbs/addtopic.asp?tid=99&name=abc e userpasswor
d =''o''''=''
In più, come una singola iniezione per evitare errori come questo?
http://127.0.0.1/systembbs/addtopic.asp?tid=99''; forum_forum eliminare - & pagina = 33
Programma di prevenzione: il corpo del programma (6)
...... Addtopic.asp? Action = aggiungere ......
...... Addtopic.asp? Action = Delect ......
Azione 1 = Trim (Request.QueryString ())
se a sinistra (Azione 1, 7) "action =" then''must essere limitata a un'azione querystring =
errore (err01)''gestione degli errori
altro
azione = Request.QueryString ("azione")''per ottenere il valore della QueryString
End If
selezionare action''to trattare caso sulla querystring
caso "add"
.....
caso "delete"
......
else''if caso la querystring non è questo il valore per la gestione degli errori
errore (err02)
fine selezionare
Procedura corpo (6)
Un tale attacco si verifica, in modo che il nostro webmaster avere un mal di testa di nuovo, qui ti posso dare una soluzione al miglior modo, in generale, la lunghezza del nome utente, numero di caratteri non superi i 15 caratteri, la maggior parte dei 14 caratteri . Poi si passa dalla lunghezza di filtro: se il corpo del programma (7)
Nome = replace (,"''","") nome
Se len (nome) 16 allora
Response.Write "Tu cosa?"
Response.End
End If
Procedura corpo (7)
为什么我们这里以及过滤了单引号,怎么还要再次取一个长度限制呢?不多说了,看看4ngel的文章先<<饶过''限制继续射入>> .别问我怎么转数字格式,我不会,嘿嘿...^_^!
还继续回到我们的主题," 脚本期望的输入变量是数字变量 (ID)".怎样进行注入防范,天呐,方法太多了,最直接的就是判断是否是数字整型,还有一些比较个性的验证办法,我们一一介绍一下 如:程序体(8)
一,判断数字是否是整型
p_lngID = CLng(Request("ID"))
二 取字长 这一点我相信一般的数据长度不会大于8位所以:
If len(ID)>8 then
response.write "bedpost"
response end
end if
三 我认为这是一种比较冒险的办法,就是再进行一次数据库的查询,如果数据库表内没有相同的值与之相同那么返回错误.
sql = "SELECT NAME FROM Category where ID="&ID
set temp=conn.Execute(SQL)
if temp.bof or temp.eof then
response.Redirect("index.asp")
altro
cat_name=temp("name")
end if
set temp=nothing
‘上面的是数据ID 的检测,下面则是正式的查询
sql = "SELECT ID T_ID, NAME FROM Category where ID="&ID&" ORDER BY xh asc"
rs.open sql,conn,1,1
四,我自己常用的数据过滤脚本,专利,呵~
id=replace(id,"''","")
If len( request("id"))>8 then ‘ 为什么取长度上面程序中已经说明
response.write ""
response.end
altro
If request("id")<>"" then ‘取不为空则是为了防止一些程序页中会出现空值情况,如果不在这里做判断,程序会校验出错.
If IsNumeric(request("id"))=False then '' 风清扬修改 ID数据监控程式
response.write ""
response.end
end if
end if
end if
程序体(8)
由于我个人的编程习惯,我喜欢将所有的数据检验程序全部保留到整站的公用程序中,比如:conn.asp啦,只需要写一次就可以修复全站的问题.
说到这里,我提一点关于攻击的问题,就是跑用户密码或者是用户名,一般常用的就是
....../show.asp?id=1 and 0<>(select count(*) from admin where id=3 and left(username,1)=''a'')
这样去一个一个尝试,当然我们不能在这里提什么Perl程序去跑密码,程序是别人写,要自己知道原理.这里我只是想给个比较方便的办法就是取ASC码范围.这个要比单独跑要快很多.不论是是字母,数字,汉字,特殊字符,他们总会有对应的ASC码,用以下办法:
....../show.asp?id=1 and 0<>(select count(*) from admin where id=3 and asc(right(left(username
e,3),1)) between 1 and 10000) 剩下的就随你了,一般的从97到122就可以啦,字母嘛,很快D.呵呵,有人想用mid 函数当然也是不错 asc(mid(username,2,1)) between 1 and 10000 也成.
如何更加有效的防止SQL注入攻击?我们将在下面的文章中具体提到!
防范远程注入攻击
这类攻击在以前应该是比较常见的攻击方式,比如POST攻击,攻击者可以随便的改变要提交的数据值已达到攻击目的.又如:COOKIES 的伪造,这一点更值得引起程序编写者或站长的注意,不要使用COOKIES来做为用户验证的方式,否则你和把钥匙留给贼是同一个道理.
比如:
If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd")
="fqy#e3i5.com" then
........more.........
End if
我想各位站长或者是喜好写程序的朋友千万别出这类错误,真的是不可饶恕.伪造COOKIES 都多少年了,你还用这样的就不能怪别人跑你的密码.涉及到用户密码或者是用户登陆时,你最好使用session 它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一个信息,SessionID,它的随机值是64位的,要猜解它,不可能.例:
if not (rs.BOF or rs.eof) then
login="true"
Session("username"&sessionID) = Username
Session("password"& sessionID) = Password
‘Response.cookies("username")= Username
‘Response.cookies("Password")= Password
下面我们来谈谈如何防范远程注入攻击,一般的攻击都是将单表提交文件拖到本地,将Form ACTION="chk.asp" 指向你服务器中处理数据的文件即可.如果你全部的数据过滤都在单表页上,那么恭喜你,你将已经被脚本攻击了.
怎么才能制止这样的远程攻击?好办,请看代码如下: 程序体(9)
‘个人感觉上面的代码过滤不是很好,有一些外部提交竟然还能堂堂正正的进来,于是再写一个.
‘这个是过滤效果很好,建议使用.
if instr(request.servervariables("http_referer"),"http://"&request.servervariables("host") )<1 then
response.write "处理 URL 时服务器上出错。
如果您是在用任何手段攻击服务器,那你应该庆幸,你的所有操作已经被服务器记录,我们会第一时间通知公安局与国家安全部门来调查你的IP. "
response.end
end if
程序体(9)
本以为这样就万事大吉了,在表格页上加一些限制,比如maxlength啦,等等..但天公就是那么不作美,你越怕什么他越来什么.你别忘了,攻击者可以突破sql注入攻击时输入框长度的限制.写一个SOCKET程序改变HTTP_REFERER?我不会。网上发表了这样一篇文章:
------------len.reg-----------------
Windows Registry Editor Version 5,00
[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt扩展(&E)]
@="C:Documents and SettingsAdministrator桌面len.htm"
"contexts"=dword:00000004
-----------end----------------------
-----------len.htm------------------
----------end-----------------------
用法:先把len.reg导入注册表(注意文件路径)
然后把len.htm拷到注册表中指定的地方.
打开网页,光标放在要改变长度的输入框上点右键,看多了一个叫扩展的选项了吧
单击搞定! 后记:同样的也就可以对付那些限制输入内容的脚本了.
怎么办?我们的限制被饶过了,所有的努力都白费了?不,举起你de键盘,说不。让我们继续回到脚本字符的过滤吧,他们所进行的注入无非就是进行脚本攻击。我们把所有的精力全都用到ACTION以后的页面吧,在chk.asp页中,我们将非法的字符全部过滤掉,结果如何?我们只在前面虚晃一枪,叫他们去改注册表吧,当他们改完才会发现,他们所做的都是那么的徒劳。
ASP木马
已经讲到这里了,再提醒各位论坛站长一句,小心你们的文件上传:为什么论坛程序被攻破后主机也随之被攻击者占据。原因就在......对!ASP木马!一个绝对可恶的东西。病毒么?非也.把个文件随便放到你论坛的程序中,您老找去吧。不吐血才怪哦。如何才能防止ASP木马被上传到服务器呢?方法很简单,如果你的论坛支持文件上传,请设定好你要上传的文件格式,我不赞成使用可更改的文件格式,直接从程序上锁定,只有图象文件格式,和压缩文件就完全可以,多给自己留点方便也就多给攻击者留点方便。怎么判断格式,我这里收集了一个,也改出了一个,大家可以看一下: 程序体(10)
''判断文件类型是否合格
Private Function CheckFileExt (fileEXT)
dim Forumupload
Forumupload="gif,jpg,bmp,jpeg"
Forumupload=split(Forumupload,",")
for i=0 to ubound(Forumupload)
if lcase(fileEXT)=lcase(trim(Forumupload(i))) then
CheckFileExt=true
exit Function
altro
CheckFileExt=false
end if
next
End Function
‘验证文件内容的合法性
set MyFile = server.CreateObject ("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile (sFile, 1) '' 读取文本文件
sTextAll = lcase(MyText.ReadAll): MyText.close
''判断用户文件中的危险操作
sStr ="8|.getfolder|.createfolder|.deletefolder|.createdirectory|
.deletedirectory"
sStr = sStr &"|.saveas|wscript.shell|script.encode"
sNoString = split(sStr,"|")
for i = 1 to sNoString(0)
if instr(sTextAll, sNoString(i)) <>0 then
sFile = Upl.Path &sFileSave: fs.DeleteFile sFile
Response.write "
"& sFileSave &"文件中含有与操作目录等有关的命令"&_
"
"& mid(sNoString(i),2) &",为了安全原因,不能上传。"&_
"
"
Response.end
end if
next
程序体(10)
把他们加到你的上传程序里做一次验证,那么你的上传程序安全性将会大大提高.
什么?你还不放心?拿出杀手锏,请你的虚拟主机服务商来帮忙吧。登陆到服务器,将PROG ID 中的"shell.application"项和"shell.application.1"项改名或删除。再将"WSCRIPT.SHELL"项和"WSCRIPT.SHELL.1"这两项都要改名或删除。呵呵,我可大胆的说,国内可能近半以上的虚拟主机都没改过。只能庆幸你们的用户很合作,否则......我删,我删,我删删删......
小结
如何更好的达到防范SQL Injection的攻击?这里我个人给推荐几个办法,第一,免费程序不要真的就免费用,既然你可以共享原码,那么攻击者一样可以分析代码。如果有能力的站长最好还是更改一下数据库表名,字段名,只修改关键的admin, username, password就可以了,比如forum_upasswd 这样的字段名谁能猜到?如果你猜到了,最好赶快去买彩票吧,特等奖不是你还会有谁呢?另外,一般站点的关键就在于管理员的密码,很好的保护好你的管理员密码那是至关重要的,至少10位的数字字母组合。另外加上现在大多数站点程序都会使用MD5来加密用户密码,加上你密码的强壮性,那样你站点的安全性就大大的提高了。即使出现了SQL Injection漏洞,攻击者也不可能马上拿下你的站点。