김승현

[Lord Of SQLInjection] goblin 3번 문제 write up 본문

Web/Lord Of Sql

[Lord Of SQLInjection] goblin 3번 문제 write up

kshind 2023. 3. 5. 12:58

문제

이번엔 저번 문제와 유사하지만 '와 "와 `까지 필터링하며 만약 사용됐을시 No Quotes가 뜨도록 되어있고

sql쿼리문이 id와 pw가 아니라 id와 no로 작성되어 있고 id엔 이미 guest로 입력되어 있다.

일단 no가 있으니까 파라미터 no에 0을 입력했더니 딱히 변한 건 없다.

이번엔 1을 입력해봤는데 Hello guest가 뜬 걸 알 수 있다.

이를 통해 각 아이디에는 고유의 no가 정해져 있다고 추측할 수있다. 그럼 admin은 0이거나 2 또는  그 이후 숫자일 것인데 일단 0부터 시도해보자.

연산자 우선 순위에 의해 and 먼저 연산이 되는데 guest의 no = 1 이기 때문에 

id 'guest and no = 0는 거짓이 되기 때문에 뒤에 있는 or no = 0이 실행된다. 그러나 아무것도 뜨지 않는 걸 보면

admin은 0이 아닌 것 같다. 2부터 쭉 시도해보자.

다행이도 admin의 no는 2라서 바로 풀렸다. or 말고 ||를 사용해도 풀 수 있다.

다른 분들 write up을 보니까 hex encoding을 해서 풀던데 처음 보는 방법이어서 신기했다.