No estoy seguro de si este sitio web es inyectable de SQL

0

Creo que encontré una vulnerabilidad de SQL; La solicitud y la respuesta se pueden encontrar a continuación. No estoy seguro porque muestra un error normal (está en francés) en lugar de mostrar un error de SQL.

También intenté inyectar en SQL la página del usuario (después de iniciar sesión normalmente en el sitio) agregando una cita ( ') a un parámetro, pero obtuve el mismo error normal en lugar del SQL uno.

¿Podría alguien con experiencia decirme si este es un mensaje de error de SQL y si es posible un exploit? Si es así, ¿cómo puede alguien explotar esto?

GET /Anonym/Login.aspx?lnrid=636705509463187707" UNION SELECT SLEEP(30) -- &_lnPageGuid=0709206f-a5aa-40cf-bad7-78fb5452f5df&__EGClientState=NY&__VIEWSTATE=NY&__EVENTVALIDATION=%2FwEdAAivVXD1oYELeveMr0vHCmYPbKvSQfBZG4FRSb%2F8I7pm6gbzWSkUOVnL89VotOv3iwS9OtS9D9WQklHFFt9eID42Uj1o80q1QHHhR9Njbuhhm5HMJLG0qgnnIQHDWK64dEQaUDEQ2ba3nFNQp5gIEycdbMy1%2F4YQMXKqdpE3Qw%2F6%2Fw%3D%3D&egWindowManager%24clientWindow%24Oui=Oui&egWindowManager%24clientWindow%24Non=Non&egWindowManager%24clientWindow%24Ok=Ok&ctlUserCode=vega&ctlUserPassword=vega&ctlLogon=Connexion
Host: redacted
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-UA-Compatible: IE=edge
Date: Fri, 24 Aug 2018 07:37:32 GMT
Content-Length: 2082

[error page; only relevant parts:]
<body>
<form name="FrmErr" method="post" action="../PageErreur.aspx?lnrid=636705509463187707%22+UNION+SELECT+SLEEP(30)+--+&amp;_lnPageGuid=0709206f-a5aa-40cf-bad7-78fb5452f5df&amp;__EGClientState=NY&amp;egWindowManager%24clientWindow%24Oui=Oui&amp;egWindowManager%24clientWindow%24Non=Non&amp;egWindowManager%24clientWindow%24Ok=Ok&amp;ctlUserCode=vega&amp;ctlUserPassword=vega&amp;ctlLogon=Connexion" id="FrmErr">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTk3MzY5NzU2NmRk" />
</div>   
  <div class="Outer">
     <div class="Middle">
        <div class="Inner">
           <div class="ErrMsg">
              <table style="margin: auto;">
                 <tr>
                    <td><img id="ImgLogo" src="../Logo.gif" style="border-width:0px;" /></td>
                    <td>&nbsp;</td>
                    <td><br />Le site éprouve présentement des difficultés, nous sommes désolés du contretemps.</td>
                 </tr>
              </table>                  
              <hr width="60%" noShade="noShade" SIZE="0" />
           </div>
        </div>
     </div>
  </div>
</form>

    
pregunta Adel M. 24.08.2018 - 08:46
fuente

1 respuesta

1

Su mensaje de error no es realmente concluyente. Simplemente indica (si mi francés no es tan malo como creo que es) que el sitio encontró algún tipo de error. Esto puede significar literalmente todo, desde "SQL devolvió un error" a "El backend se ha ido porque un avión se estrelló contra él".

También intentabas inyectar esto:

  

"UNION SELECT SLEEP (30) -

¿Qué comportamiento esperaría de un sitio vulnerable? En el caso de que su declaración sea correcta de forma sistemática, lo más probable es que espere un retorno del servidor sin errores después de 30 segundos. Entonces: ¿Mediste el tiempo?

También: ¿Cómo llegó a la conclusión de que esta es la sintaxis correcta de cualquier backend usado? Existen múltiples idiomas e intérpretes basados en SQL diferentes y elegir la sintaxis incorrecta probablemente producirá errores independientes del filtrado aplicado.

Para que sus preguntas puedan ser respondidas con:

  

¿Podría alguien con experiencia decirme si este es un mensaje de error de SQL y si es posible un exploit?

No, es muy probable que sea imposible en base a la información proporcionada.

  

Si es así, ¿cómo puede alguien explotar esto?

Lo más probable es que no importe. Si logra probar que la inyección SQL es posible (ya sea que se produzca un error real de SQL o se concluya a partir del tiempo o la base del error), probablemente no haya razón para explotar.

Simplemente dile al propietario;)

    
respondido por el Ben 24.08.2018 - 14:08
fuente

Lea otras preguntas en las etiquetas