giant

2022. 4. 5. 17:21Site/LOS

이번시간에는 giant을 풀어보겠습니다

공부하는 입장이니 틀린 것이 있더라도 양해부탁드립니다


소스코드를 확인해보니

strlen함수를 이용해서 get방식으로 받은 shit값의 길이가 1보다 길면 아웃

preg_match함수를 통해 공백과 공백문자우회를 할 수 있는 \n, \r, \t 필터링 됩니다

 

query부분을 확인해 보면 from 과 get방식으로 받아온 shit값 사이에 공백이 없어서 쿼리문법의 오류가 있을거라고 생각이듭니다. 따라서 pw값에 1을 넣어주니 쿼리문에서 from과 1사이에 공백이 없는 문법적 오류라서 출력이 안되네요

해결방법은 간단하게 from과 shit사이에 공백을 넣어주면 해결이 될 것 같습니다

 

공백문자우회

1. \n : 줄바꿈[URL Encoding: %0a]

2. \t : 커서를 한 tab만큼 이동시키는 문자[URL Encoding: %09]

3. \r : 커서를 줄의 맨 앞으로 이동시키는 개행 문자[URL Encoding: %0d]

4. 주석 (/**/)

5. 괄호 ()

6. +

7. 수직탭[URL Encoding: %0b] ->

8. /f : 폼피드URL Encoding: %0c] ->

 

8개의 공백문자우회방법 중 1, 2, 3번은 preg_match에서 필터링 해주기 때문에  패스

4번과 5번은 길이가 1이 넘어가므로 패스

6, 7, 8번을 이용해야 될 것 같습니다

 

 

 

%0b
%0c

 

'Site > LOS' 카테고리의 다른 글

succubus  (0) 2022.04.05
assassin  (0) 2022.04.05
bugbear  (0) 2022.04.05
darknight  (0) 2022.04.05
golem  (0) 2022.04.02