article thumbnail image
Published 2021. 7. 26. 17:21

 

giant 입장!

이번 문제는 id와 pw를 통해 해결하는 문제가 아닌 것 같다.

아래쪽의 if문을 보면 $result[1234]의 값이 존재해야 문제를 해결할 수 있는 것으로 보인다.

현재 query를 보면 where절이 항상 참이기 때문에 1234 column의 값을 가져올 수 있다.

다만, from과 뒤에 prob가 공백 없이 붙어있기 때문에 제대로 동작하지 않는다.

따라서 from뒤에 공백을 추가해서 query를 정상적으로 동작시켜야 한다.

 

 

 

이제 필터링 부분을 살펴보자.

from뒤에 공백을 넣을 때 $_GET[shit]을 이용하면 될 것 같다.

현재 $_GET[shit]은 문자열의 길이가 1보다 크면 필터링되고, 공백문자와 \n, \r, \t모두 필터링되고 있다.

공백문자 우회를 위한 문자는 대부분 필터링되는 것으로 보인다.

필터링 조건에 걸리지 않으면서도 공백문자를 대체할 수 있는 방법은 아래 두 가지로 좁혀볼 수 있다.

    → %0b, %0c

 

 

 

위 두 가지 방법 모두 시도해봤다.

 

 

 

두 방법 모두 문제를 해결할 수 있었다.

 

giant 해결!

 

 

 

 

'Study > Web Hacking' 카테고리의 다른 글

[LOS] assassin  (0) 2021.08.02
[natas] Level 23 -> Level 24  (0) 2021.08.02
[natas] Level 22 -> Level 23  (0) 2021.07.26
[LOS] bugbear  (0) 2021.07.20
[natas] Level 21 -> Level 22  (0) 2021.07.20
복사했습니다!