giant
2022. 4. 5. 17:21ㆍSite/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번을 이용해야 될 것 같습니다