yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

challenge (old-23) 본문

wargame 풀이/webhacking.kr

challenge (old-23)

yehey 2021. 2. 7. 14:46

23번 풀이

이번 문제는 script 를 이용해서 alert(1)을 띄우게 하면 문제가 해결되는 것 같다!

그래서 그대로 입력란에 복사 붙여넣기 해봤는데 no hack 이라는 문자열이 출력되었다..

 

이렇게 no hack 이라는 문자열이 뜰 때는 보통 php 에서 블랙 리스트 검증을 하는 문제들을 풀 때 본 적이 있다..! (sql 인젝션같은 경우..)

이번에도 특정 문자열들을 검증하는게 아닌가 하고 이것 저것 넣어보았다. php 코드는 페이지 소스보기에서 확인할 수 없기 때문에 하나하나 넣어봐야했당...

 

당연히 script, alert는 필터링이 되었고 문자들을 잘라서 두글자만 넣어도 필터링이 적용되었다

 

그래도 다행히 특수문자들은 필터링하지 않는 듯 했다!

 

그럼 이제 어떻게 필터링을 우회해야할까?? 단순히 script, alert 만을 필터링하는게 아니라 문자열 그중에서도 명령어처럼 작동할 수 있는 가능성이 존재하는 영어로 이루어진 문자열을 필터링하는 것 같다.

 

이를 우회하려면 문자열을 문자 단위로 쪼개서 하나의 문자처럼 보이지만 실제로 입력되었을 때는 하나의 명령어처럼 작동되게끔 해주어야한다!

 

문자 사이사이에 스페이스바로 띄워서 넣어주었는데 이 방법은 아닌 것 같다.. 정상적으로 출력되진 않는다

URL을 보면 스페이스바가 %20으로 들어가있다. 그럼 스페이스바 말고 \를 넣어보자 

 

\를 사이사이에 넣으면 우회는 되지만 그렇다고 alert가 실행되지는 않는다. 

 

이번에는 스페이스바의 %20말고 NULL을 뜻하는 %00을 넣어보자

 

문제가 해결되었다... 아직도 왜 해결되었는지 원리는 잘 모르겠다ㅠ 왜 널문자만 되는걸까?

'wargame 풀이 > webhacking.kr' 카테고리의 다른 글

challenge (old-21)  (0) 2021.02.07
challenge (old-41)  (0) 2021.01.31
challenge (old25)  (0) 2021.01.21
challenge (old-42)  (0) 2021.01.19
challenge (old-6)  (0) 2021.01.19
Comments