PortSwigger_SQL

Lab: SQL injection vulnerability in WHERE clause allowing retrieval of hidden data

unknown08 2026. 2. 22. 22:10
반응형

[문제]

This lab contains a SQL injection vulnerability in the product category filter. When the user selects a category, the application carries out a SQL query like the following:

SELECT * FROM products WHERE category = 'Gifts' AND released = 1

To solve the lab, perform a SQL injection attack that causes the application to display one or more unreleased products.

[풀이]

이 랩의 목표는 SQL injection을 활용하여 미출시 제품을 노출 시키는 것이다

취약점 코드에선  category 파라미터를 입력값 검증 없이 SQL에 이어붙이기 때문에 SQL 인젝션이 가능한 것을 확인 할 수 있다

 

가장 먼저 SQL injection을 활용하기 위해 버프 수위트 브라우져에서 카테고리 필터의 요청을 가로 챘다

아래와 같이 요청 결과를 확인 해보면 문제의 코드와 같이 category 파라미터가 SQL 쿼리에 그대로 삽입되는 것을 알 수 있다

서버에서는 GET /filter?category=Gifts HTTP/2 값을 받아와 SELECT * FROM products WHERE category = 'Gifts' AND released = 1 과 같은 코드를 생성한다

이 코드를 Gifts' OR 1=1-- 을 사용하여 우회 해주면 미출시 상품들을 확인 할 수 있을 것 이다

( AND released = 1 를 주석( --)을 통해 우회하기 때문이다)

 

버프 수위트 리피터로 요청을 보낸 결과 200 OK 응답을 받았으며 응답 본문에 미출시 상품을 포함한 모든 상품이 노출되는 것을 확인했다

반응형

'PortSwigger_SQL' 카테고리의 다른 글

Lab: SQL injection vulnerability allowing login bypass  (0) 2026.02.24