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 |