Non sono sicuro se questo sito Web sia iniettabile SQL

0

Penso di aver trovato una vulnerabilità SQL; la richiesta e la risposta possono essere trovate sotto. Non sono sicuro perché mostra un errore normale (è in francese) invece di mostrare un errore SQL.

Ho anche provato a inserire SQL nella pagina utente (dopo aver effettuato l'accesso normalmente al sito) aggiungendo un preventivo ( ') a un parametro, ma ho ricevuto lo stesso errore normale anziché il SQL uno.

Qualcuno potrebbe dirmi se questo è un messaggio di errore SQL e se è possibile un exploit? Se sì, come può qualcuno sfruttarlo?

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>

    
posta Adel M. 24.08.2018 - 08:46
fonte

1 risposta

1

Il tuo messaggio di errore non è davvero conclusivo. Si afferma solo (se il mio francese non è così male come penso che sia) che il sito ha incontrato qualche tipo di errore. Questo può significare letteralmente tutto da "SQL ha restituito un errore" a "Il backend è sparito perché un aereo si è schiantato contro di esso".

Inoltre stavi tentando di inserire questo:

" UNION SELECT SLEEP(30) --

Quale comportamento ti aspetteresti da un sito vulnerabile? Nel caso in cui la tua affermazione sia sytatically corretta, molto probabilmente ti aspetteresti un ritorno senza errori del server dopo 30 secondi. Quindi: hai misurato il tempo?

Inoltre: come hai concluso questa è la sintassi corretta per qualsiasi backend usato? Esistono diversi linguaggi e interpreti basati su SQL e la scelta della sintassi sbagliata produce molto probabilmente errori indipendenti dal filtro applicato.

Quindi le tue domande potrebbero essere risolte con:

Could someone experienced tell me if this is an SQL error message and if an exploit is possible?

No è molto probabilmente impossibile sulla base delle informazioni fornite.

If yes, how can someone exploit this?

Molto probabilmente non importa. Se riesci a provare che SQL-Injection è possibile (o producendo un errore SQL reale o concludendo in base a tempistiche o errori), probabilmente non ci sarà alcun motivo per sfruttare.

Dillo al proprietario;)

    
risposta data 24.08.2018 - 14:08
fonte

Leggi altre domande sui tag