article thumbnail image
Published 2021. 4. 11. 17:19

 

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

id='admin'

하지만 위 화면처럼 "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
복사했습니다!