
goblin에 접속!
이번 문제는 no를 입력받아서 query에 포함시키고 있다.
이후 id가 admin일 때 goblin이 solve되고 있다.
goblin을 해결하려면 id가 admin이어야 하는데 query는 이미 id='guest'가 들어있기 때문에 이부분을 무효화 시켜야 한다.
id='guest'를 무효화시키려면 id='guest' and no={$_GET[no]} 이 식 전체를 거짓으로 만들면 된다.
해당 식을 거짓으로 만들기 위해 guest의 no가 갖지 않을 만한 값을 입력해봤다.
Hello {$result[id]} 부분이 출력되지 않은 걸로 보아 guest의 no는 9999999999999가 아니다.
이렇게 id='guest'를 무효화시킨 후에는 id='guest' and no=9999999999999 뒤에 or id='admin'을 붙여야 한다.
payload를 다음과 같이 작성해서 입력했다.
no=9999999999999%20or%20id=%27admin%27
하지만 위 화면처럼 "NO Quotes ~_~"가 출력될뿐 goblin이 해결되지는 않았다.
아무래도 따옴표를 필터링하는 것 같다.
그래서 필터링을 우회하는 방법을 찾아봤다.
찾아보니 16진수로 문자열을 표현하는 방법이 있었다.
보통 문자열을 표현할 땐 ''처럼 따옴표를 사용해야 하지만, 16진수로 따옴표 없이 문자열을 표현할 수 있다고 한다.
그래서 admin을 16진수로 표현하고 이를 payload에 넣어봤다.
no=9999999999999%20or%20id=0x61646d696e
그 결과 goblin을 해결했다.
'Study > Web Hacking' 카테고리의 다른 글
[XSS Challenge] Stage #6 (0) | 2021.04.11 |
---|---|
[XSS Challenge] Stage #5 (0) | 2021.04.11 |
[natas] Level 6 -> Level 7 (0) | 2021.04.11 |
[natas] Level 5 -> Level 6 (0) | 2021.04.11 |
[XSS Challenge] Stage #4 (0) | 2021.04.02 |