
Një laborator Next.js me aplikacionin OopsSec Store demonstron një dobësi SQL Injection në funksionin që regjistron IP-të e vizitorëve. Vlera e header-it X-Forwarded-For, e kontrollueshme nga klienti, futet drejtpërdrejt në një query SQL pa u pastruar, duke lejuar injektimin e SQL arbitrar.
Gjurmimi aktivizohet automatikisht në çdo faqe përmes një komponenti në anën e klientit, i cili dërgon të dhëna te /api/tracking. Aplikacioni e ruan vlerën e header-it si adresë IP, ndërsa të dhënat e vizitorëve shfaqen për administratorët te /admin/analytics.
Kodi përdor prisma.$queryRawUnsafe për të shtuar regjistrime në tabelën visitor_logs. Ndryshe nga IP-ja, vlerat userAgent, path dhe sessionId trajtohen për të neutralizuar apostrofet. Sipas analizës së laboratorit, kjo e bën header-in X-Forwarded-For pikën e hyrjes për injektim në query-n e paraqitur.
Megjithëse operacioni INSERT nuk kthen rreshta, API-ja përgjigjet me regjistrimet që kërkesa sapo ka shkruar, brenda fushës logged. Ky mekanizëm krijon mundësinë që përgjigjja të përmbajë edhe vlera të lexuara përmes injektimit nga tabela që funksioni i gjurmimit normalisht nuk i kërkon. Laboratori mund të niset me Node.js ose Docker dhe ekzekutohet lokalisht në http://localhost:3000.
Burimi: DEV Community (Web Dev Feed) — lexoni artikullin e plotë në anglisht.

