R's Hacking Daily Log

SQLi (3) - Lab 본문

Port Swigger/SQL Injection

SQLi (3) - Lab

hanhxx 2023. 4. 28. 12:03

SQLi (3)에서 살펴본 내용과 관련된 port swigger의 lab을 풀어보자!

 

첫 번째 lab에서는 column의 개수를 알아내라고 한다.

 

 

url 창에 ' union select null--을 입력했더니 server error가 발생했다. null을 두 번 넣고 세 번 넣고 했더니..!

column 개수가 3개인 걸 확인할 수 있었다.

 

 

두 번째 lab에선 제공한 특정 문자열을 가지고 어떤 column이 string data를 갖는지 확인하라고 한다.

 

 

column의 개수가 3개인 건 첫 번째 lab에서 알아냈으니 총 3번만 시도해보면 알 수 있다.

 

 

두 번째 column 자리에 문자열을 넣고 확인해보니 공격에 성공했다.

이로써 3개의 column 중에서 두 번째 column은 string data를 갖는다는 걸 알 수 있다.

 

 

세 번째 lab에서는 3개의 column, string data를 갖는 두 번째 column이라는 정보를 가지고 시도해야 한다.

 

여기서 username & password라는 column을 갖는 users table이 있다고 할 때, 모든 user의 정보를 조회하고 administrator 계정으로 로그인하라고 한다.

 

 

이렇게 저렇게 해보다가 안 풀려서 문제를 다시 읽어봤더니 "all"이라는 단어가 눈에 들어와 * 문자를 사용해 봤더니 

중간중간에 username & password 내용이 출력되는 걸 볼 수 있었다.

 

원하는 건 admin 계정이니까 password를 복사해서 My account 클릭.

 

 

로그인 form에 위에서 조회한 내용을 입력하고 Enter를 누르면..!!

 

 

administrator 계정에 로그인에 성공한 걸 볼 수 있다.

 

 

이제 마지막 lab을 살펴보자. 

네 번째 lab은 username & password column을 갖는 users table이 있고 original table에 대한 정보는 모르는 상태이다. 

이때 모든 users 내용을 조회하고 admin 계정으로 로그인하라고 한다.

 

 

일단 lab으로 들어가 column의 개수부터 알아보자.

' union select null--부터 시도해 보니 어렵지 않게 column이 두 개인 걸 확인할 수 있었다.

 

 

두 개의 column에 대해 string data를 갖는지 확인해 봤더니 두 번째 column이 string data를 갖는다는 걸 쉽게 알아낼 수 있었다.

 

 

두 번째 column만 string data를 갖다 보니 username과 password column을 동시에 조회하는 것이 불가능해 

username과 

 

 

password column 내용을 따로 출력했다. 

이 lab에서는 3명의 user 정보만이 포함되어 있어 3개의 password 중 어떤 게 admin의 password인지 다 해보면 되겠지만

무수히 많은 user 정보가 포함된 테이블을 조회했다면 굉장히 번거로운 작업이 되었을 것이다.

 

 

이렇게 여러 column의 data를 single column으로 조회할 수 있는 방법에 대해 SQLi (3)에서 이미 살펴보았다.

바로, concatenation!!

이 lab에서는 || 기호를 사용하니 에러가 발생해서 concat()을 사용했다. 

이렇게 하면 username과 password 내용을 이어 붙여서 하나의 column에 출력할 수 있다.

 

 

username = administrator에 위에서 구한 password를 입력해서 로그인을 하면 

 

 

이번 lab도 성공!

'Port Swigger > SQL Injection' 카테고리의 다른 글

SQLi (5)  (0) 2023.04.30
SQLi (4)  (0) 2023.04.28
SQLi (3)  (0) 2023.04.27
SQLi (2) & Lab  (0) 2023.04.27
SQLi (1) - Lab  (0) 2023.04.26
Comments