-
[LOS] 3. goblin 문제 풀이Wargame/LOS (Lord of SQL Injection) 2019. 7. 16. 18:44
쿼리문을 보니 id는 guest로 이미 고정되어 있고, no를 get 방식으로 입력받는다. guest로 고정된 id를 admin으로 바꾸면 문제가 해결될 것이다.
일단 인자로 no를 1부터 넣어보았는데, no = 1일 때만 Hello guest 문구가 출력되었고, 다른 숫자를 넣었을 때는 문구가 출력되지 않았다.
이를 통해 id=guest에 할당된 no가 1이라는 것을 알 수 있다.
no=1이 guest이므로, admin에 할당된 no도 존재할 것이다. admin의 no는 2라고 가정한다. 따라서 no의 인자로 admin의 no를 주면 admin 계정으로 로그인이 가능할 것이다. 하지만 id가 guest로 고정되어 있고 no는 and 구문으로 묶여있기 때문에, id='guest' and no=3으로 해당 구문을 false로 만든 후, or 구문으로 admin의 no를 주면 admin의 계정을 불러오는 쿼리문이 완성될 것이다.
id='guest' and no=3 or no=2
위와 같이 되면 id='guest' and no=3은 false가 되므로 그대로 넘어가게 되고, or no=2에 의해 admin 계정으로 로그인이 될 것이다.
'Wargame > LOS (Lord of SQL Injection)' 카테고리의 다른 글
[LOS] 6. darkelf 문제 풀이 (0) 2019.07.17 [LOS] 5. wolfman 문제 풀이 (0) 2019.07.16 [LOS] 4. orc 문제 풀이 (0) 2019.07.16 [LOS] 2. cobolt 문제 풀이 (0) 2019.07.16 [LOS] 1. gremlin 문제 풀이 (0) 2019.07.15