※ 작년 말 ~ 올해 초에 작성한 라이트업으로 사이트 개편 전의 문제가 섞여있습니다. ※
lv에 값을 대입해보면 1부터 4까지는 값이 출력되고 0과 5부터는 값이 출력되지 않는다.
lv 값으로 1 or 1=1을 넣었더니 1을 넣은 것과 동일한 결과가 나오지 않았다. 이는 이 값을 대입했을 때 제대로 동작하지 않는 것을 의미한다.
lv 값으로 1%0aor%0a1=1을 넣어보니 1을 넣었을 때와 동일한 결과가 나왔다.
소스를 확인해보았다. addslashes 함수는 ' -> \' 등 백슬래시를 붙여주는 함수로 문자열에서 저장 쉽게 하려고 쓰인다. 또한 공백과 /, *, %는 str_replace로 없애고, preg_match로 select, 0x, limit, cash를 거르고 있다. 싱글 쿼터의 우회 방법으로는 0x, %27 등의 방법이 있지만 모두 거르고 있으므로 char를 사용했다. ?lv=0%09or%09id=char(97,100,109,105,110)을 입력하면 문제가 풀린다.
'CTF > 웹 해킹' 카테고리의 다른 글
webhacking.kr challenge 49 (0) | 2020.06.27 |
---|---|
webhacking.kr challenge 48 (0) | 2020.06.27 |
webhacking.kr challenge 43 (0) | 2020.06.27 |
webhacking.kr challenge 42 (0) | 2020.06.27 |
webhacking.kr challenge 41 (0) | 2020.06.27 |