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 의 비밀번호를 확인할 수 있고
이 비밀번호가 바로 문제의 플래그이다.
'워게임 > Root Me' 카테고리의 다른 글
[Root Me] WAV - Spectral analysis - 포렌식 (136) | 2023.09.15 |
---|---|
[Root Me] Polyalphabetic substitution - Vigenère - 암호학 (159) | 2023.09.13 |
[Root Me] ELF x86 - Format string bug basic 1 - 포너블 (143) | 2023.08.30 |
[Root Me] OSPF - Authentication - 포렌식 / Wireshark / John the Ripper / Ettercap (164) | 2023.08.28 |
[Root Me] Monoalphabetic substitution - Caesar / 암호학 (143) | 2023.08.24 |