CTF/웹해킹

[DanteCTF] Dante Barber Shop - 웹해킹 / SQL Injection

SecurityMan 2023. 6. 16. 11:00

 

SQL Injection 과 관련된 웹해킹 문제

 

인젝션 자체는 쉬웠는데

 

공격 벡터를 찾아내는데 시간이 좀 걸렸다.

 

반응형

 

소스는 따로 없고 문제페이지 주소만 주어진다.

 

 

문제 페이지에 접속하면 

 

이렇게 간단한 미용실 홍보 페이지가 나온다.

 

오른쪽 위에 보면 Login 버튼이 있는데

 

 

들어가면 이렇게 로그인 창이 나온다.

 

처음에 여기다가 SQL Injecion 을 해서 

 

로그인을 우회하는건줄 알았는데

 

아무리 해봐도 잘 안돼서 다른 곳을 찾아보게 되었다.

 

 

F12 개발자도구를 이용해

 

HTML을 살펴보다가 찾았는데

 

img src 를 보면

 

barber2.jpg 부터 barber7.jpg 까지 있는것을 볼 수 있다.

 

barber1.jpg 가 없는게 이상해서

 

 

URL에 직접 주소를 쳐 접근해보니

 

Backup User 의 ID 와 PW가 적혀있었다.

 

 

해당 ID와 PW를 이용해 로그인을 해보니

 

고객 목록을 조회할 수 있는 페이지가 나타났다.

 

 

Enter a keyword 부분에

 

' 를 입력해보니

 

아래처럼 SQLite3 에러가 발생했다.

 

이 부분이 취약한 부분일 것이라고 확신했다.

 

 

인젝션이 가능하다는 것을 알아내고 나서

 

바로 UNION 을 이용해 컬럼 갯수를 파악했다.

 

' union select 1,2,3,4-- - 라고 입력해보니

 

오류없이 UNION 이 잘 수행되는것을 볼 수 있었다.

 

컬럼의 갯수는 4개이다.

 

 

DBMS가 SQLite이니

 

' union select 1,sql,3,4 sqlite_master-- - 을 이용해

 

테이블 정보를 확인했다.

 

users 테이블에 

 

username, password 컬럼이 있는것을 확인했다.

 

 

알아낸 정보를 토대로

 

' union select 1,username,password,4 from users-- -

 

라고 입력하여 admin 의 비밀번호를 알아냈다.

 

 

알아낸 admin 비밀번호로 로그인 하면

 

플래그를 찾을 수 있다.

반응형