SQL injection - where 구문

2020. 12. 22. 18:11문제연습/bs_Training

반응형

 

본 티스토리 블로그는 PC에 최적화되어 있습니다.

모바일 유저분들은 아래 네이버 블로그를 이용해 주세요.

 

SQL injection - 1

본 네이버 블로그는 모바일에 최적화되어 있습니다.PC 유저분들은 아래 티스토리 블로그를 이용해 주세요...

blog.naver.com

 

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

 

1. 문제 내용

사용자가 데이터를 검색할 시 아래와 같은 쿼리문으로 데이터가 전송된다고 합니다.

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

 

sql 인젝션을 이용해 모든 데이터를 검색하는 쿼리로 조작해보라고 합니다.

한번 접속해 보도록 하겠습니다.

 

 

1.1 접속 화면

딱히 검색 폼이 보이지 않습니다.

웹 페이지 소스코드를 보니 filter와 연관된 링크 중 하나인 Clothing, shoes and accessories를 클릭해 보도록 하겠습니다.

 

 

- 접속 요청 URL -

https://ace71fb41f385c208052502a009e0063.web-security-academy.net/filter?category=Clothing%2c+shoes+and+accessories

 

 

1.2 summary

검색 시도 시(카테고리 클릭 시) 서버에 다음과 같은 쿼리가 전달된다.

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

 

 

2. Attack

모든 카테고리를 검색해야 하므로 where 구문을 조작해야 하며 추가적인 필터가 있을 수 있으므로 주석을 활용해 쿼리문을 작성하면 될 것 같습니다.

SELECT * FROM products WHERE category = 'asdf' or 1=1'#' AND released = 1
전달 데이터 : ?category=asdf' or 1=1#‘

 

흠... 그런데 에러가 발생하였습니다.

 

일단 제 추측으로는 DBMS마다 사용하는 주석 문법이 약간씩 다른데, 아마 이 부분 때문에 문제가 발생하는 것인 듯합니다.

# 부분을 --로 수정해 전달하면 다음과 같이 정상적으로 공격이 진행됨을 알 수 있습니다.

 

성공적으로 문제가 풀렸습니다.

 

다음 시간에도 인젝션 문제를 이어서 풀어보도록 하겠습니다.

 

반응형

'문제연습 > bs_Training' 카테고리의 다른 글

SQL injection - UNION3(Examining the database1)  (0) 2020.12.26
SQL injection - UNION3  (0) 2020.12.25
SQL injection - UNION2  (0) 2020.12.25
SQL injection - UNION1  (0) 2020.12.23
SQL injection - Comment  (0) 2020.12.23