Posibles problemas que permiten a los usuarios configurar cualquier URL como enlace web

4

Todavía estoy en la etapa de planificación, por lo que es posible que esto no se haya completado completamente, pero estoy trabajando en un proyecto SaaS. Parte de lo cual permite a los usuarios (clientes de mi SaaS) configurar mi API para ver eventos y responder de manera preconfigurada. Una respuesta es que mi API (incorporada en PHP) inicie una solicitud POST HTTP a una URL proporcionada durante la configuración, con los parámetros dados. El objetivo es que el usuario dirija estas solicitudes a su propio servidor u otro sistema interno y luego pueda escucharlas e integrarla con sus propios sistemas internos de correo electrónico / seguimiento / pago.

Sin embargo, estoy un poco preocupado de que estos usuarios puedan reinar libremente sobre quiénes reciben a mi servidor para las solicitudes POST también. Suponiendo que desinfecto la entrada de la URL y cualquier parámetro, y reduzco la cantidad de solicitudes que puede enviar, ¿existen posibles casos de uso malintencionados derivados de un usuario que active POST desde mi API?

    
pregunta Justin Harr 16.10.2017 - 20:24
fuente

2 respuestas

1

Me preocuparía darles a los usuarios una configuración de punto final arbitraria.

Podría ser una idea validar el dominio antes de tiempo.

Ejemplo: goodguy.com se registra, envía un correo electrónico a [email protected] para realizar la validación del dominio, o pídales que configuren un registro DNS txt que pueda consultar para validar la propiedad del dominio.

Todas las demás medidas también son obligatorias, limitador de velocidad, desinfección, etc. pero realmente debe validar que el usuario tiene derecho a enviar solicitudes automáticas al dominio.

  

¿Existe algún caso de uso malicioso potencial derivado de que un usuario active POST desde mi API?

Un par de la parte superior de mi cabeza:

  • Ataque de fuerza bruta muy lento, la limitación de velocidad no detectaría esto
  • Registro de cuenta múltiple, ataque de DOS, es decir, 1000 usuarios falsos se registran y todos activan una solicitud de publicación compleja en algún lugar
  • Usando su servicio como una máscara para solicitudes maliciosas, es decir, envío un montón de cargas útiles maliciosas desde un servidor que controlo y, al mismo tiempo, envio spam al mismo destino desde su servidor, esto coloca la IP de su servidor en los registros de las víctimas junto con mi
respondido por el Trickycm 16.10.2017 - 20:43
fuente
1

Sí, esto es peligroso. Te estás abriendo a falsificación de solicitudes del lado del servidor (SSRF).

Si les da a sus usuarios la capacidad de enviar solicitudes POST a URIs arbitrarios desde su red, pueden alcanzar lo que no deben alcanzar. ¿Qué ocurre si tiene algún tipo de servidor HTTP sensible ejecutándose en su red, y alguien lo usa para enviarle solicitudes? Dependiendo de cuánto control tengan sobre los contenidos de la solicitud, puede ser más o menos problemático, pero en general no es una buena idea.

Entonces, ¿cómo mitigar en contra de ella? Podría intentar filtrar los URI: s, pero esto es mucho más difícil de lo que parece, y no estoy seguro de confiar en ello. Consulte esto para una discusión sobre algunos de los desafíos. Otro enfoque es simplemente enviar la solicitud a través de un servidor fuera de su propia red.

    
respondido por el Anders 17.10.2017 - 13:46
fuente

Lea otras preguntas en las etiquetas