Validacion del flujo de compra

A continuación, explicaré cada una de las peticiones y señalaré aspectos relevantes desde la perspectiva de un pentester.

Detalles Importantes de agregar.php:

  • producto=1 y cantidad=1: Esto indica que el producto que se está agregando al carrito tiene un ID de producto 1 y se está agregando una unidad. Si el ID del producto es autoincremental, esto podría ser explotado por un atacante para intentar manipular o ver productos adicionales. Un pentester podría probar manipulaciones en el ID, por ejemplo:

producto=2&cantidad=10
  • Esta manipulación podría verificar si es posible agregar productos no autorizados o más costosos al carrito, o incluso productos ocultos o no disponibles públicamente.

  • comprar=Buy+Now: Este parámetro probablemente activa la acción de agregar el producto al carrito de compras.

La página previa de comprar.php parece cargar y visualizar los productos agregados al carrito. Según la imagen, se muestra una tabla con los productos, cantidades y precios, y un campo de correo electrónico donde el usuario ingresa su dirección para finalizar la compra.

Analisis de proceso.php con parametro llamado Correo Electrónico (email=eliasib%40spartan.com): El correo electrónico parece ser un identificador clave en el proceso de facturación. Si no hay validaciones adecuadas en el backend, un pentester podría manipular el campo del correo electrónico para procesar una compra a nombre de otro usuario:

email=otro_usuario%40correo.com

Si el sistema permite esta manipulación sin validación adicional, el atacante podría cargar un carrito de compras o realizar una compra utilizando la cuenta de correo electrónico de otra persona, lo que sería una grave vulnerabilidad.

Los ID autoincrementales son útiles en bases de datos, pero pueden ser un vector de ataque si se exponen directamente en las solicitudes HTTP. Si el parámetro producto=1 o invoiceid corresponde a un ID autoincremental en la base de datos, un atacante podría intentar enumerar productos u otras entidades sensibles probando con diferentes valores de ID:

Se intento cargar la compra del carrito a otro usuario pero no fue posible:

Last updated