syurhia 님의 블로그
PortSwigger SQL injection vulnerability in WHERE clause allowing retrieval of hidden data 본문
보안관련/PortSwigger
PortSwigger SQL injection vulnerability in WHERE clause allowing retrieval of hidden data
syurhia 2026. 4. 16. 15:33SQL Injection의 기초부터 렛츠고.
다음과 같은 사이트가 있다.

여기서 숨겨져 있는 물품을 보이게 하라는게 문제의 요지인데..
이미지에선 잘라놨지만 URL에서 /filter?category=Accessories라고 되어있다.
SQL문법을 쓴다고 힌트를 줬으니 url의 값을 서버가 받으면 SELECT * From products Where category='Accessories'라고 서버에서 처리하고 결과를 내보내주는 것일거다.
그렇다면, /filter?category=Accessories' OR 1=1--이라고 해주면?
SELECT * From products Where category='Accessories' OR 1=1--' 이렇게 출력될테니까 모든 물품들이 보일거다.
참고로 위의 SQL쿼리를 풀어서 얘기하면 category가 Accessories이거나 1=1(항상 참)인 것들을 products에서 출력하라이기 때문에, products의 모든 것을 출력하라고 보면 될 듯하다.
그리고 확인해보면?

해결돼서 이미지가 다양하게 보인다. 이게 SQL Injection의 기본 원리.
아무 상관 없는 말--
더보기
url을 통해서 받는 GET의 형태를 띌 것 같다고 생각한다만.. GET인지 확인이 불가능했다.
어떻게 만든걸까 싶다. 좀 궁금하다.
Burp Suite로 확인해보니 GET으로 통신을 하는게 맞았다. 역시 그럴 줄 알았다니까.(이 글을 쓸 당시에는 Burp Suite를 안 써서 확인을 못 했었다.)