일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 홍대 토라비
- 비동기배열
- 비동기배열처리방법
- 고르드
- graphql 400
- 잠실새내 도그존
- 홍대 예술
- 도그존
- 홍대 카페 장쌤
- 금별맥주
- 신촌 소문난집
- 잠실새내
- 토라비
- graphql with RN
- promise메서드
- apolloclient
- apollo react native
- useMutation error
- promise처리
- 앙버터마카롱
- 예쁜술집 예술
- graphql mutation error
- typescript
- graphql
- 화이트해커를 위한 웹 해킹의 기술
- graphql with reactnative
- 화이트 해커를 위한 웹 해킹의 기술
- 지보싶 신촌점
- 운정 소바동
- graphql react native
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
challenge (old-23) 본문
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 |