저 스크립트를 인젝션 시키면 된다고 한다.
아마도 필드에 필터링이 걸려있겠지?
먼저 그냥 <script>alert(1);</script> 를 입력해보니 no hack 이 뜨면서 url 에 내가 입력한 값이 나왔다.
( ) ; / 이 4문자가 url 인코딩되어 적용된 것을 볼 수 있고, 아마 script 라는 문자가 필터링 되었을 것 같다.
url 에서 직접 수정해서 입력해봐도
no hack.
Script, sCript 등으로 입력해봐도 역시 no hack 이 떴다. 사이사이 공백을 넣어서 입력해보자.
하나씩 추가하면서 확인해보았다.
왜 안돼
내가 입력으로 준 값 사이사이마다 %00을 넣고 제출하니 성공했다.
왜 사이사이마다 %00을 꼭 다 입력해야만 우회가 가능했던 것인지, 무슨 우회 방법인지 궁금해서 구글링을 해보니
* NULL byte injection
: URL로 인코딩 된 널 바이트 문자(예. %00 또는 0x00)를 입력 DATA에 이용하여
악의적인 공격자에 의해 악성코드 파일을 업로드하여 시스템 권한을 획득하거나 주요 정보 파일 유출이 가능하도록 하는 공격이다.
아마 이문제에서는 모든 문자열 사이에 입력을 해야만 필터링이 되도록
즉, 연속된 문자열 두개라도 존재하질 않아야 우회가 가능하도록 설정해둔 것 같다.
23번 문제도 해결!
'WARGAME > webhacking.kr [web]' 카테고리의 다른 글
webhacking.kr / Old-58. javascript [write-up] (0) | 2020.01.31 |
---|---|
webhacking.kr / Old-34. javascript [write-up] (0) | 2020.01.31 |
webhacking.kr / Old-17. javascript [write-up] (0) | 2020.01.31 |
webhacking.kr / Old-16. javascript [write-up] (0) | 2020.01.31 |
webhacking.kr / Old-15. javascript [write-up] (0) | 2020.01.31 |