본문 바로가기
작업/Webhacking.kr

webhacking.kr old-23 이해하기

 

 

 

 

old-23 페이지에는 "Your mission is to inject <script>alert(1);</script>"가 적혀있습니다.

 

 

<script>alert(1);</script> 코드를 실행시키는 것이 해답인 것 같습니다.

 

 

 

 

여러 값들을 넣어보면서 어떤 기능이 있는지 알아보았습니다.

 

 

 

 

영어를 길게 적거나 아래 코드를 집어 넣으면 "no hack"이라고 나타납니다.

영어 단어를 하나씩 적으면 출력이 되는 것을 알 수 있었습니다.

 

 

문자가 길어질 경우 모든 경우에 대해서 필터링이 이루어지는 것으로 예상합니다.

그렇다면 영어 단어를 하나씩 인식시키는 방법으로 코드를 만들면 어떻게 될까요.

 

 

php 코드에서 필터링을 수행하는 방법으로 preg_match() 함수를 사용하는 것이 있습니다.

필터링을 우회하는 방법으로 preg_match()에서 문자열 검사를 방해하는 %00을 사용하겠습니다.

 

 

 

 

필터링에 대한 정보는 아래에 있습니다.

 

h232ch.tistory.com/33

 

5. Filtering 우회

=  LIKE, >, <  substr, substring  LEFT, RIGHT, LIKE  주석  #, -- (뒤에 문자하나 필요), ;%00 => 한 줄 주석  /**/ => 여러 줄 주석  #, --과 같은 한 줄 범위 주석 우회  \n (라인피드, %0A)  %20..

h232ch.tistory.com

 

 

 

각각의 문자 사이에 %00을 삽입하여 값을 만들어 냈습니다. 

몇 번 실패했는데, 특수문자나 숫자 사이에는 %00 추가하면 안 되는 것이었습니다.

 

 

오로지 영어 사이에만 추가하여 값을 만들어냅니다.

 

 

 

<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>

 

 

 

 

해결되었습니다!

 

 

 

 

'작업 > 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