23번 문제는 <script> alert(1); </script> 이 스크립트를 주입하는 것이 목표라고 한다.
제출입력 칸에 해당 구문을 입력하면 no hack 이라며 오류가 난다
필터링이 걸려있는것 같다.
필터링이 어떤 식으로 걸려있는지 코드에는 안 나와있고 별다른 특징이 없다.
직접 입력 칸에 타이핑을 해보았고 영어문자중에 2글자를 이어붙일때 필터링되는 것을 알았다
즉 1칸씩 따로 떨어뜨려서 구문을 작성해야 한다.
<s c r i p t>a l e r t(1);<s c r i p t> 로 영문자만 떨어뜨려 제출을 하니 아래와 같이 -이 출력되었다.
공백이 인식되어 이런 식으로 출력되는 것 같다. 그래서 공백과련 우회를 검색하다
null을 이용한 우회가 있음을 알게되었다.
null 은 아무의미가 없는 문자로 공백도 아니며 '존재하지 않는 값'으로 불린다.
이 문자에 사칙연산을 하면 적용이 될 것 같지만 적용이 안되며 리턴값도 null이다.
그러면 이 널문자를 이용해서 공백부분을 존재하지 않는 값으로 채워면 될 것 같다.
입력 칸에 기입하면 문자그대로 출력되므로 get방식으로 넘어가는 code값 부분에 url encode하여 입력한다.
null문자는 url encode 값이 %00이다. 해당 값을 영문사이에 기입하면 url decode를 하여 null로 넘어가게된다.
'1'이라고 표시되면 문제가 풀린다.
문제핵심
1. 필터링 규칙을 분석
2. null 개념 및 활용
3. url encode , decode
4. get메서드
'웹 > 웹 해킹 문제' 카테고리의 다른 글
Webhacking.kr 33번 write-up (0) | 2022.12.22 |
---|---|
dvwa 실습 (file upload_low) (0) | 2022.12.08 |
webhacking.kr 20번 write-up (0) | 2022.12.07 |
webhacking.kr 47번 write-up (0) | 2022.12.04 |
webhacking.kr 32번 write-up (0) | 2022.12.04 |