워게임/Root Me

[Root Me] SQL injection - Numeric - 웹해킹

SecurityMan 2023. 9. 11. 11:00

 

Root Me에서 제공하는

 

웹해킹 문제

 

제목에서 SQL 인젝션 문제임을 알 수 있다.

 

반응형

 

 

문제페이지에 접속하면

 

이런 간단한 페이지가 하나 나온다.

 

 

왼쪽에 있는 링크를 눌러보면 News 가 뜨는데

 

이때 URI를 보면 

 

news_id 파라미터가 1, 2, 3 과 같이 변경되는것을 확인할 수 있다.

 

 

여기에 작은 따옴표(%27) 을 넣어봤는데

 

SQLite3 에러가 뜨는것을 확인했다.

 

이렇게 작은따옴표를 입력했을 때

 

systax errer (구문 오류) 가 난다면 SQL Injection 취약점이 존재하는 것이다.

 

 

이번엔 작은 따옴표를 지우고

 

1 or 1=1-- - 라고 입력을 했는데

 

모든 뉴스가 한번에 출력된 것을 확인했다.

 

SQL구문에서 Where 절이 항상 참이되었기 때문에 테이블 전체가 조회된 것이다.

 

 

이번엔 컬럼의 갯수를 확인해 보았다.

 

union select 1,2,3 -- - 라고 입력했더니

 

컬럼 갯수에 대한 에러가 없이

 

결과가 제대로 출력되는것을 확인했다.

 

테이블의 컬럼 갯수는 3개이다.

 

 

이제 테이블 스키마를 확인해 본다.

 

union select 1,2,sql from sqlite_master -- - 라고 입력하면

 

users 라는 테이블이

 

username, password, Year 라는 컬럼을 가지고 있다는 것을 알 수 있다.

 

가장 궁금한건 비밀번호이기에

 

비밀번호를 확인해본다.

 

 

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

 

라고 입력하면

 

users 테이블의 내용을 조회할 수 있다.

 

admin 의 비밀번호를 확인할 수 있고

 

이 비밀번호가 바로 문제의 플래그이다.

반응형