html injection tutorial
Una mirada en profunditat a la injecció HTML:
Per obtenir una millor percepció de la injecció HTML, primer hem de saber què és HTML.
HTML és un llenguatge de marques, on tots els elements del lloc web estan escrits a les etiquetes. S’utilitza principalment per crear llocs web. S’envien pàgines web al navegador en forma de documents HTML. A continuació, aquests documents HTML es converteixen en llocs web normals i es mostren per als usuaris finals.
Aquest tutorial us proporcionarà una visió general completa de la injecció HTML, els seus tipus i mesures preventives, juntament amb exemples pràctics en termes senzills per facilitar la vostra comprensió del concepte.
Què aprendreu:
- Què és la injecció HTML?
- Tipus d’injecció HTML
- Com es realitza la injecció HTML?
- Com provar contra la injecció d'HTML?
- Com evitar la injecció d'HTML?
- Comparació amb altres atacs
- Conclusió
- Lectura recomanada
Què és la injecció HTML?
L’essència d’aquest tipus d’atac per injecció és injectar codi HTML a través de les parts vulnerables del lloc web. L'usuari maliciós envia codi HTML a través de qualsevol camp vulnerable amb l'objectiu de canviar el disseny del lloc web o qualsevol informació que es mostri a l'usuari.
Com a resultat, l’usuari pot veure les dades que ha enviat l’usuari maliciós. Per tant, en general, la injecció HTML és només la injecció de codi de llenguatge de marques al document de la pàgina.
Les dades que s’envien durant aquest tipus d’atac per injecció poden ser molt diferents. Poden ser algunes etiquetes HTML que només mostrin la informació enviada. A més, pot ser tot el formulari o la pàgina falsos. Quan es produeix aquest atac, el navegador sol interpretar les dades de l'usuari maliciós com a legítimes i les mostra.
Canviar l’aspecte d’un lloc web no és l’únic risc que comporta aquest tipus d’atac. És força similar a l’atac XSS, on l’usuari malintencionat roba les identitats d’una altra persona. Per tant, robar la identitat d'una altra persona també pot passar durant aquest atac per injecció.
Tipus d’injecció HTML
Sembla que aquest atac no és molt difícil d’entendre ni de realitzar, ja que l’HTML es considera un llenguatge bastant simple. Tot i això, hi ha diferents maneres de realitzar aquest tipus d’atac. També podem distingir diferents tipus d’aquesta injecció.
En primer lloc, es poden ordenar diferents tipus segons els riscos que comporten.
Com es va esmentar, aquest atac per injecció es pot realitzar amb dos propòsits diferents:
paquet de programari dissenyat per automatitzar el control de versions
- Per canviar l’aspecte del lloc web que es mostra.
- Per robar la identitat d’una altra persona.
A més, aquest atac per injecció es pot realitzar a través de diferents parts del lloc web, és a dir, dels camps d’entrada de dades i de l’enllaç del lloc web.
No obstant això, els principals tipus són:
- Injecció HTML emmagatzemada
- Injecció HTML reflectida
# 1) Injecció d'emmagatzematge HTML:
La principal diferència entre aquests dos tipus d’injecció és que l’atac d’injecció emmagatzemat es produeix quan es desa codi HTML maliciós al servidor web i s’executa cada vegada que l’usuari truca una funcionalitat adequada.
No obstant això, en el cas d'atac d'injecció reflectit, el codi HTML maliciós no s'està emmagatzemant permanentment al servidor web. La injecció reflectida es produeix quan el lloc web respon immediatament a les aportacions malicioses.
# 2) Injecció HTML reflectida:
Això es pot dividir de nou en més tipus:
- GET reflectit
- POST reflectit
- URL reflectida
L'atac d'injecció reflectida es pot realitzar de manera diferent segons els mètodes HTTP, és a dir, GET i POST. Recordo que amb el mètode POST s’envien dades i amb el mètode GET es demanen dades.
Per saber quin mètode s’utilitza per obtenir els elements del lloc web adequats, podem comprovar la font de la pàgina.
Per exemple , un provador pot comprovar el codi font del formulari d’inici de sessió i trobar quin mètode s’utilitza per fer-ho. A continuació, es pot seleccionar el mètode d'injecció HTML adequat en conseqüència.
Injecció GET reflectida es produeix quan les nostres aportacions es mostren (reflecteixen) al lloc web. Suposem que tenim una pàgina senzilla amb un formulari de cerca, que és vulnerable a aquest atac. Aleshores, si escrivíem qualsevol codi HTML, apareixerà al nostre lloc web i, al mateix temps, s'injectarà al document HTML.
Per exemple, introduïm text senzill amb etiquetes HTML:
Injecció POST HTML reflectida és una mica més difícil. Es produeix quan s’envia un codi HTML maliciós en lloc de paràmetres de mètode POST correctes.
Per exemple , tenim un formulari d'inici de sessió, que és vulnerable a l'atac HTML. Les dades introduïdes al formulari d’inici de sessió s’envien amb el mètode POST. Aleshores, si escrivíem qualsevol codi HTML en lloc dels paràmetres correctes, s’enviarà amb el mètode POST i es mostrarà al lloc web.
Per realitzar un atac POST HTML reflectit, es recomana utilitzar un connector especial del navegador que falsifiqui les dades enviades. Un d’ells és el complement Mozilla Firefox “Tamper Data”. El connector pren les dades enviades i permet a l'usuari canviar-les. A continuació, s’envien i es mostren les dades canviades al lloc web.
Per exemple, si fem servir aquest complement, enviaríem el mateix codi HTML o bé cercar codi de formulari, si voleu provar amb alguna cosa més complicada Escriviu text per cercar
Si es mostra un codi HTML que es desa en algun lloc, el provador pot estar segur que aquest atac per injecció és possible. Llavors es pot provar un codi més complicat Exemple , per mostrar el formulari d'inici de sessió fals.
Una altra solució és l'escàner d'injecció HTML. Escanejar automàticament contra aquest atac us pot estalviar molt de temps. M'agradaria notificar que no hi ha moltes eines per provar injecció HTML en comparació amb altres atacs.
Tot i això, una solució possible és l’aplicació WAS. WAS es pot anomenar un escàner de vulnerabilitats força fort, ja que prova amb les diferents entrades i no només s’atura amb el primer error.
És útil per fer proves, potser, tal com s’esmenta al complement del navegador anterior “Tamper Data”, s’envien dades, permet al comprovador canviar-les i enviar-les al navegador.
També podem trobar algunes eines d’exploració en línia, on només heu de proporcionar l’enllaç del lloc web i realitzar un escaneig contra atac HTML. Un cop finalitzada la prova, es mostrarà el resum.
M’agradaria comentar que, en seleccionar una eina d’escaneig, hem de fixar-nos en com analitza els resultats i és prou precisa o no.
Tot i així, cal tenir present que no s’ha d’oblidar les proves manuals. D’aquesta manera podem estar segurs de quines entrades exactes s’intenten i quins resultats exactes obtenim. D'aquesta manera, també és més fàcil analitzar els resultats.
De la meva experiència en una carrera de proves de programari, voldria comentar que, per a les dues maneres de provar, hauríem de tenir un bon coneixement d’aquest tipus d’injecció. En cas contrari, seria difícil seleccionar una eina d’automatització adequada i analitzar-ne els resultats. A més, sempre es recomana no oblidar-se de provar manualment, ja que només ens fa estar més segurs de la qualitat.
Com evitar la injecció d'HTML?
No hi ha dubtes que el motiu principal d’aquest atac és la falta d’atenció i manca de coneixement del desenvolupador. Aquest tipus d'atac d'injecció es produeix quan l'entrada i la sortida no estan validades correctament. Per tant, la regla principal per evitar atacs HTML és la validació de dades adequada.
S'ha de comprovar cada entrada si conté cap codi de seqüència d'ordres o cap codi HTML. Normalment, es comprova si el codi conté algun script especial o claudàtors HTML -,.
Hi ha moltes funcions per comprovar si el codi conté claudàtors especials. La selecció de la funció de comprovació depèn del llenguatge de programació que utilitzeu.
Cal recordar, que bé proves de seguretat també forma part de la prevenció. M'agradaria prestar atenció que, atès que l'atac per injecció HTML és molt escàs, hi ha menys literatura per aprendre-hi i menys escàner per seleccionar per fer proves automàtiques. Tot i això, aquesta part de les proves de seguretat no s’ha de perdre, ja que mai no se sap quan pot passar.
A més, tant el desenvolupador com el comprovador haurien de tenir un bon coneixement de com es realitza aquest atac. Una bona comprensió d’aquest procés d’atac pot ajudar a prevenir-lo.
Comparació amb altres atacs
En comparació amb els altres possibles atacs, aquest atac definitivament no es considerarà tan arriscat com Injecció SQL o bé Atac per injecció de JavaScript o fins i tot XSS pot ser-ho. No destruirà tota la base de dades ni robarà totes les dades de la base de dades. Tot i això, no s’ha de considerar com a insignificant.
Com s’ha esmentat anteriorment, l’objectiu principal d’aquest tipus d’injecció és canviar l’aspecte del lloc web mostrat amb un propòsit maliciós, mostrar la informació o les dades enviades a l’usuari final. Aquests riscos es poden considerar menys importants.
Tot i això, canviar l'aparença del lloc web pot costar la reputació de la vostra empresa. Si un usuari maliciós destruiria l’aspecte del vostre lloc web, pot canviar les opinions dels visitants sobre la vostra empresa.
Cal recordar que un altre risc que comporta aquest atac al lloc web és robar la identitat de l’altre usuari.
Com s'ha esmentat, amb la injecció HTML, l'usuari maliciós pot injectar tota la pàgina, que es mostrarà per a l'usuari final. Aleshores, si l’usuari final indicarà les seves dades d’inici de sessió a la pàgina d’inici de sessió falsa, s’enviaran a l’usuari maliciós. Aquest cas és, per descomptat, la part més arriscada d’aquest atac.
Cal esmentar que per robar dades d’altres usuaris, aquest tipus d’atac se selecciona amb menys freqüència, ja que hi ha molts altres possibles atacs.
Tot i això, és molt similar a l’atac XSS, que roba les cookies de l’usuari i la identitat d’altres usuaris. També hi ha atacs XSS, basats en HTML. Per tant, les proves contra atacs XSS i HTML poden ser molt similars i es realitzen conjuntament.
Conclusió
Com que la injecció HTML no és tan popular com altres atacs, es pot considerar menys arriscat que altres atacs. Per tant, de vegades se salta la prova d'aquest tipus d'injecció.
Preguntes i respostes de l'entrevista pl / sql
A més, es nota que definitivament hi ha menys literatura i informació sobre la injecció d’HTML. Per tant, els verificadors poden decidir no realitzar aquest tipus de proves. No obstant això, en aquest cas, els riscos d'atac HTML potser no es valoren prou.
Tal com hem analitzat en aquest tutorial, amb aquest tipus d’injecció es pot destruir tot el disseny del vostre lloc web o fins i tot robar les dades d’inici de sessió de l’usuari. Per tant, es recomana incloure la injecció HTML a les proves de seguretat i invertir un bon coneixement.
Us heu trobat amb alguna injecció HTML típica? No dubteu a compartir les vostres experiències a la secció de comentaris següent.
Lectura recomanada
- Tutorials Eclipse en profunditat per a principiants
- Tutorial de proves d'injecció SQL (exemple i prevenció d'atacs per injecció SQL)
- Tutorial de Python DateTime amb exemples
- Tutorial d'atac de cross site scripting (XSS) amb exemples, tipus i prevenció
- Tutorial d’injecció de JavaScript: proveu i preveniu atacs d’injecció de JS al lloc web
- Tutorial de script Unix Shell amb exemples
- Tutorial Selenium Find Element By Text amb exemples
- Tutorial de funcions principals de Python amb exemples pràctics