Durante un pentest engagement, ho trovato un SQLi cieco e posso leggere tutte le tabelle e i dati in esse contenuti. C'è solo un problema. Stanno usando una chiave AES statica (definita in web.config e non ho accesso ad essa) e tutte le credenziali di accesso CMS sono criptate. Tutti i dati critici sono crittografati a livello di cella, persino nome, cognome, email, ecc.
Sebbene il cliente abbia accettato il risultato, dicono che non è troppo critico perché non ho potuto accedere a nulla, non potevo nemmeno accedere a CMS, non potevo davvero fare "nulla" se non leggere BLOB crittografati. So che trovare è sufficiente, voglio solo essere in grado di dimostrare il mio punto e portarlo al livello successivo.
Il server è MSSQL 2012 e Win server 2012, l'app Web è scritta in C # / ASP.NET. Leggo tutto in DB, ma l'utente SQL dell'app Web ha un basso privilegio, ho solo SQLi cieco (basato sul tempo, lento e senza query impilate, solo lettura dei dati) e la porta MSSQL non è aperta su Internet.
Mi sto perdendo qualcosa qui? Posso fare di più qui? Posso avere più accesso di quello che ho ottenuto? Voglio solo dimostrare un punto e non mi piace il modo in cui il cliente ha minimizzato la mia scoperta sostenendo (giustamente) che la mia scoperta non equivaleva a "qualcosa". Si prega di avvisare. Ho una shell sqlmap completa qui, ho anche eseguito query personalizzate, ho ottenuto l'elenco delle stored procedure, ho ottenuto l'elenco di tutti i DB, tutte le tabelle, ecc. Ma come ho detto, hanno scritto del codice e usando una chiave statica (sconosciuta), tutto è crittografato a livello di cella.