728x90
old-23 페이지에는 "Your mission is to inject <script>alert(1);</script>"가 적혀있습니다.
<script>alert(1);</script> 코드를 실행시키는 것이 해답인 것 같습니다.
여러 값들을 넣어보면서 어떤 기능이 있는지 알아보았습니다.
영어를 길게 적거나 아래 코드를 집어 넣으면 "no hack"이라고 나타납니다.
영어 단어를 하나씩 적으면 출력이 되는 것을 알 수 있었습니다.
문자가 길어질 경우 모든 경우에 대해서 필터링이 이루어지는 것으로 예상합니다.
그렇다면 영어 단어를 하나씩 인식시키는 방법으로 코드를 만들면 어떻게 될까요.
php 코드에서 필터링을 수행하는 방법으로 preg_match() 함수를 사용하는 것이 있습니다.
필터링을 우회하는 방법으로 preg_match()에서 문자열 검사를 방해하는 %00을 사용하겠습니다.
필터링에 대한 정보는 아래에 있습니다.
각각의 문자 사이에 %00을 삽입하여 값을 만들어 냈습니다.
몇 번 실패했는데, 특수문자나 숫자 사이에는 %00 추가하면 안 되는 것이었습니다.
오로지 영어 사이에만 추가하여 값을 만들어냅니다.
<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>
해결되었습니다!
728x90
'작업 > Webhacking.kr' 카테고리의 다른 글
webhacking.kr old-32 이해하기 (0) | 2020.09.12 |
---|---|
webhacking.kr old-33 이해하기 (0) | 2020.09.10 |
webhacking.kr old-31 이해하기 (0) | 2020.09.06 |
webhacking.kr old-20 이해하기 (0) | 2020.09.06 |
webhacking.kr old-39 이해하기 (0) | 2020.09.06 |