home, search, login 페이지가 존재한다.
home은 news
와 news_id
파라미터를 전달한다.
search는 search
, 즉 검색할 문자열을 파라미터로 전달한다.
home에서 sqlinjection을 시도해보았지만 취약점은 발생하지 않았다.
'
search에서 위의 쿼리를 입력하였을 때, 그대로 실행되어 sqlite3 에러가 발생하였다.
따로 필터링 되는 문자는 없었지만 sqlite3에서 sql injection으로 스키마 정보를 획득하는 방법을 알아야 한다.
참고 - https://velog.io/@woounnan/SQLITE-SQL-Injection
스키마 생성시 전달된 쿼리문을 통해 테이블명, 컬럼명을 한 번에 확인할 수 있다.
' union select 1, sql from sqlite_master --
확인된 정보로 password
를 확인한다
' union select 1, password from users --
해당 패스워드는 챌린지의 플래그값이다.