War Game/LOS(lord of sql injection)

[LOS] Gremlin문제풀이

zyari 2019. 7. 29. 00:29
반응형

문제


풀이

문제를 클릭하면 다음처럼 query문이 나오고, 그 아래 페이지에 대한 소스가 나온다.

코드에서 쿼리문을 보니 id와 pw를 get방식으로 입력받는것을 알 수 있었고, url뒤에 ?id=1&pw=1을 입력해보니 아래처럼 쿼리문이 바뀌어있는것을 확인하였고, 이를 조작한다면 문제가 풀릴것이라는 것을 알 수 있었다.

10번째 줄 코드를 보면 풀렸을 때 실행될 함수가 실행되는 조건을 알 수 있는데, id가 맞을 때 실행됨을 알 수 있다. 그런데 우리는 id값이 정확히 뭔지 모른다.

그리고 sql 쿼리를 자세히 보면 and로 논리가 연결되어있는것을 볼 수 있는데, 그렇다면 and와 or가 연결되어있다면...? 이라는 생각이 든다.

or는 아무리 앞이 모두 거짓이어도 마지막이 참이 되면 모두 참이 되는 성질을 가지고 있다. 이를 이용해 pw 뒤에 or 조건식을 연결하면 문제가 풀릴것 같다.

 

그래서 id에는 그대로 1을 넣어주고, pw에도 1을 넣어주되, pw=1'이렇게 해서 따옴표를 하나 닫아주고, or 뒤에 연결할 1=1을 또하나의 따옴표로 연결해주기위해 ?id=1&pw=1'or1=1' 이렇게 입력해준다.

 

문제가 풀린것을 확인할 수 있다!

결국 id와 pw값을 정확하게 알아내지 않아도 논리를 이용해 문제를 해결할 수 있는 것이다!

반응형

'War Game > LOS(lord of sql injection)' 카테고리의 다른 글

[LOS] Darkelf 문제 풀이  (0) 2019.08.02
[LOS] Wolfman 문제 풀이  (0) 2019.08.02
[LOS] Orc 문제 풀이  (0) 2019.07.30
[LOS] Goblin 문제풀이  (0) 2019.07.29
[LOS] Cobolt 문제풀이  (0) 2019.07.29