<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lorena Gutiérrez, autor en 4Elitech</title>
	<atom:link href="https://4elitech.com/author/lorena/feed/" rel="self" type="application/rss+xml" />
	<link>https://4elitech.com/author/lorena/</link>
	<description>Innovamos para transformar, protegemos para crecer.</description>
	<lastBuildDate>Fri, 10 Apr 2026 07:34:02 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://4elitech.com/wp-content/uploads/2025/02/cropped-icono-32x32.png</url>
	<title>Lorena Gutiérrez, autor en 4Elitech</title>
	<link>https://4elitech.com/author/lorena/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>La API que confiaba demasiado en el frontend</title>
		<link>https://4elitech.com/la-api-que-confiaba-demasiado-en-el-frontend/</link>
		
		<dc:creator><![CDATA[Lorena Gutiérrez]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 06:47:30 +0000</pubDate>
				<category><![CDATA[Auditoria y pentesting]]></category>
		<guid isPermaLink="false">https://4elitech.com/?p=43896</guid>

					<description><![CDATA[<p>Cuando la seguridad parece correcta&#8230; pero no lo es En una reciente auditoría de ciberseguridad, analizamos una aplicación web empresarial con una arquitectura aparentemente sólida. A primera vista, todo indicaba un nivel de madurez alto: WAF implantado, auditorías periódicas, controles activos…Sin embargo, bastaron unos minutos de análisis para comprometer la confidencialidad de todos los usuarios. [&#8230;]</p>
<p>La entrada <a href="https://4elitech.com/la-api-que-confiaba-demasiado-en-el-frontend/">La API que confiaba demasiado en el frontend</a> se publicó primero en <a href="https://4elitech.com">4Elitech</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="43896" class="elementor elementor-43896">
				<div class="elementor-element elementor-element-4544832 e-flex e-con-boxed e-con e-parent" data-id="4544832" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-bb67824 elementor-widget-laptop__width-initial elementor-widget elementor-widget-heading" data-id="bb67824" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Cuando la seguridad parece correcta... <br> pero no lo es </h3>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-365e779 e-flex e-con-boxed e-con e-parent" data-id="365e779" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-2537d7c elementor-widget elementor-widget-text-editor" data-id="2537d7c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En una reciente auditoría de ciberseguridad, analizamos una aplicación web empresarial con una arquitectura aparentemente sólida. A primera vista, todo indicaba un nivel de madurez alto: WAF implantado, auditorías periódicas, controles activos…<br />Sin embargo, bastaron unos minutos de análisis para comprometer la confidencialidad de todos los usuarios.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-df3c13c e-flex e-con-boxed e-con e-parent" data-id="df3c13c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-e8f08a1 e-con-full e-flex e-con e-child" data-id="e8f08a1" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-fe4a74c elementor-widget-laptop__width-initial elementor-widget elementor-widget-heading" data-id="fe4a74c" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">¿Podíamos ver información de 
<br> otros usuarios?</h3>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-88e87ef e-con-full e-flex e-con e-child" data-id="88e87ef" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-2737e79 elementor-widget-laptop__width-initial elementor-widget elementor-widget-text-editor" data-id="2737e79" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Durante las pruebas, accedimos al perfil del usuario que se nos había facilitado para el análisis y hacer las pruebas de roles correspondientes. Luego, interceptamos dicha petición y modificamos algunos parámetros con la intención de ver si era posible obtener información de otros usuarios que estuviesen registrados en la plataforma y… </p>								</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-c077169 e-flex e-con-boxed e-con e-parent" data-id="c077169" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-74a8eb6 elementor-widget elementor-widget-text-editor" data-id="74a8eb6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>¡PREMIO! El resultado fue inmediato, la API devolvía información de otros usuarios sin aplicar controles de autorización adecuados.</p><p>¿Y qué podíamos ver en estos perfiles? Pues había un poco de todo…desde ID de usuario, nombre, apellidos, dirección física y de correo electrónico, DNI, foto de perfil … Y lo mejor de todo, dentro del perfil existía una opción para cambiar de contraseña sin validación intermedia de la empresa que estábamos auditando.</p><p>¿Podríamos modificar las contraseñas? La respuesta es: SI, podíamos hacerlo y el cómo lo hicimos, os lo enseñaremos en el próximo artículo.</p><p>Lo importante ahora es entender cómo en una empresa con un alto nivel de madurez, había sido posible romper la seguridad en RGPD con tanta facilidad y es que no se trataba de un fallo técnico complejo, era un error de confianza en el modelo de interacción.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-4f6c379 elementor-widget elementor-widget-image" data-id="4f6c379" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="900" height="506" src="https://4elitech.com/wp-content/uploads/2026/04/USUARIO-A-1024x576.jpg" class="attachment-large size-large wp-image-43901" alt="" srcset="https://4elitech.com/wp-content/uploads/2026/04/USUARIO-A-1024x576.jpg 1024w, https://4elitech.com/wp-content/uploads/2026/04/USUARIO-A-300x169.jpg 300w, https://4elitech.com/wp-content/uploads/2026/04/USUARIO-A-768x432.jpg 768w, https://4elitech.com/wp-content/uploads/2026/04/USUARIO-A-1536x864.jpg 1536w, https://4elitech.com/wp-content/uploads/2026/04/USUARIO-A.jpg 1920w" sizes="(max-width: 900px) 100vw, 900px" />															</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-fea5e8d e-flex e-con-boxed e-con e-parent" data-id="fea5e8d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-24334ce elementor-widget elementor-widget-text-editor" data-id="24334ce" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Este tipo de comportamiento es característico de vulnerabilidades de tipo <strong>IDOR (Insecure Direct Object Reference)</strong>, aunque en este caso el problema raíz era más profundo:</p><p> <strong>La lógica de autorización no estaba implementada en el servidor.</strong></p><p>La aplicación validaba correctamente las acciones desde el frontend (que es la parte visible para el usuario cuando entra en una web desde el navegador).<br />Pero el backend (que son los sistemas que procesan y controlan la información desde el servidor de dicha web), asumía que esas validaciones no serían manipuladas. En otras palabras, la seguridad estaba implementada en la parte visual del aplicativo que usamos todos día a día, pero si bajas un nivel y trabajas desde las peticiones interceptadas, no se había aplicado ningún tipo de validación ni seguridad.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-43960cd e-flex e-con-boxed e-con e-parent" data-id="43960cd" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-9fa22ab elementor-widget-laptop__width-initial elementor-widget elementor-widget-heading" data-id="9fa22ab" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">¿Cuál es el impacto real para el negocio?</h3>				</div>
				</div>
				<div class="elementor-element elementor-element-59d2f7e elementor-widget elementor-widget-spacer" data-id="59d2f7e" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-020f68b elementor-widget elementor-widget-text-editor" data-id="020f68b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Este tipo de vulnerabilidad IDOR tiene implicaciones muy críticas como:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-a789a00 elementor-widget elementor-widget-text-editor" data-id="a789a00" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li>Exposición de datos personales de clientes</li><li>Riesgo de incumplimiento de normativas como RGPD</li><li>Pérdida de confianza y daño reputacional</li><li>Posible uso malicioso para fraude o suplantación</li></ul>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3f6841e e-flex e-con-boxed e-con e-parent" data-id="3f6841e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8deb444 elementor-widget-laptop__width-initial elementor-widget elementor-widget-heading" data-id="8deb444" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">¿Por qué ocurre este tipo de fallo?</h3>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-249eae8 e-flex e-con-boxed e-con e-parent" data-id="249eae8" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
								<p class="e-paragraph-base" data-interaction-id="957db89"  >
								En entornos empresariales, es habitual encontrar este tipo de errores y es porque se asume que el cliente no manipulará las peticiones y esta suposición es incorrecta. La realidad es que cualquier persona con conocimientos básicos puede manipular este tipo de peticiones.La moraleja de esto es que: <strong>“El frontend nunca debe ser considerado una capa de seguridad. Recuerda: el frontend muestra y el backend decide.”</strong>&nbsp;
					</p>
					</div>
				</div>
		<div class="elementor-element elementor-element-6d03069 e-flex e-con-boxed e-con e-parent" data-id="6d03069" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-fbba43a elementor-widget-laptop__width-initial elementor-widget elementor-widget-heading" data-id="fbba43a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">¿Cómo se soluciona?</h3>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-cae5dbf e-flex e-con-boxed e-con e-parent" data-id="cae5dbf" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-25a9569 elementor-widget elementor-widget-text-editor" data-id="25a9569" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>A partir de este caso, destacan varias conclusiones:</p><ul><li>La autorización debe implementarse siempre en backend</li><li>Cada petición debe validar explícitamente el contexto del usuario y la cadena de autenticación en capas más bajas como las APIs</li><li>Es necesario un control de acceso granular en todas las peticiones realizadas desde el aplicativo al servidor. No basta con autenticación</li></ul><p> </p><p>Además, las pruebas automatizadas no detectan fácilmente este tipo de fallos. Este tipo de vulnerabilidades no suele aparecer con herramientas automatizadas.</p><p>Se detecta cuando se analiza:</p><ul><li>Cómo interactúan los componentes</li><li>Cómo fluye la lógica de negocio</li><li>Qué se ha asumido en el diseño</li></ul><p>Y esto solo puede descubrirse si se hacen análisis manuales y con personal experimentado.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a8b69eb e-flex e-con-boxed e-con e-parent" data-id="a8b69eb" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-041b578 elementor-widget elementor-widget-text-editor" data-id="041b578" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>La seguridad no se rompe por un gran fallo, sino por pequeñas decisiones mal conectadas.</strong></p><p>Y esto es solo el principio ¡Recuerda, que este hackeo no se queda aquí! En el próximo articulo os contaremos como continuó nuestra historia y cómo modificamos la contraseña de otros usuarios hasta llegar a ser Administradores.</p><p>En <strong>4Elitech</strong>, realizamos evaluaciones orientadas a identificar este tipo de riesgos, que van más allá de vulnerabilidades técnicas evidentes. Analizamos cómo se comporta realmente una aplicación frente a escenarios de abuso y aunque los Pententers somos conocidos por romper la seguridad, todos nuestros trabajos los realizamos con mucho cuidado y delicadeza.</p><p><strong>Porque los fallos más críticos no suelen estar en lo evidente, sino en lo que nadie cuestiona.</strong></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3fb460b e-flex e-con-boxed e-con e-parent" data-id="3fb460b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-7a79632 e-con-full e-flex e-con e-child" data-id="7a79632" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
		<div class="elementor-element elementor-element-af490f5 e-con-full e-flex e-con e-child" data-id="af490f5" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-f6821c8 elementor-widget elementor-widget-heading" data-id="f6821c8" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Y nosotros estamos para eso.</h3>				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-b153c4d e-con-full e-flex e-con e-child" data-id="b153c4d" data-element_type="container" data-e-type="container" data-settings="{&quot;background_background&quot;:&quot;classic&quot;}">
				<div class="elementor-element elementor-element-43271cf elementor-widget elementor-widget-spacer" data-id="43271cf" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d5d8a6a elementor-widget elementor-widget-image" data-id="d5d8a6a" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="683" height="1024" src="https://4elitech.com/wp-content/uploads/2026/04/hacker_w-683x1024.webp" class="attachment-large size-large wp-image-43911" alt="" srcset="https://4elitech.com/wp-content/uploads/2026/04/hacker_w-683x1024.webp 683w, https://4elitech.com/wp-content/uploads/2026/04/hacker_w-200x300.webp 200w, https://4elitech.com/wp-content/uploads/2026/04/hacker_w-768x1152.webp 768w, https://4elitech.com/wp-content/uploads/2026/04/hacker_w.webp 1024w" sizes="(max-width: 683px) 100vw, 683px" />															</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-d33198c e-flex e-con-boxed e-con e-parent" data-id="d33198c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-9fe962d e-con-full e-flex e-con e-child" data-id="9fe962d" data-element_type="container" data-e-type="container">
		<div class="elementor-element elementor-element-69045ec e-con-full e-flex e-con e-child" data-id="69045ec" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-289f3b4 elementor-widget elementor-widget-spacer" data-id="289f3b4" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-a983256 hfe-post-info-layout-inline elementor-widget elementor-widget-post-info-widget" data-id="a983256" data-element_type="widget" data-e-type="widget" data-widget_type="post-info-widget.default">
				<div class="elementor-widget-container">
							<ul class="hfe-post-info-inline hfe-post-info-items hfe-post-info">
					<li class="hfe-post-info-item elementor-repeater-item-7de937f hfe-post-info-inline-item" itemprop="author"> 
							<a href="https://4elitech.com/author/lorena/">
			
						<span class="hfe-post-info-icon">
									<svg aria-hidden="true" class="e-font-icon-svg e-far-user-circle" viewBox="0 0 496 512" xmlns="http://www.w3.org/2000/svg"><path d="M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"></path></svg>							</span>
					<span class="hfe-post-info-text hfe-post-info__item hfe-post-info__item--type-author">
			
							Lorena Gutiérrez					</span>
		
							</a>
					</li>
				</ul>
						</div>
				</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-89fa316 e-flex e-con-boxed e-con e-parent" data-id="89fa316" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-b36a4b2 e-con-full e-flex e-con e-child" data-id="b36a4b2" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-648157a elementor-widget-tablet_extra__width-initial elementor-view-default elementor-position-block-start elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box" data-id="648157a" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default">
				<div class="elementor-widget-container">
							<div class="elementor-icon-box-wrapper">

						<div class="elementor-icon-box-icon">
				<a href="https://4elitech.com/contacto/" class="elementor-icon" tabindex="-1" aria-label="Podemos ayudarte">
				<i aria-hidden="true" class="rebuilto-icon- rebuilto-icon-contact"></i>				</a>
			</div>
			
						<div class="elementor-icon-box-content">

									<h3 class="elementor-icon-box-title">
						<a href="https://4elitech.com/contacto/" >
							Podemos ayudarte						</a>
					</h3>
				
				
			</div>
			
		</div>
						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>La entrada <a href="https://4elitech.com/la-api-que-confiaba-demasiado-en-el-frontend/">La API que confiaba demasiado en el frontend</a> se publicó primero en <a href="https://4elitech.com">4Elitech</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
