본문 바로가기
Webhacking.kr

Challenge(old)_18

by 꼬마인간 2020. 5. 19.

view-source를 누르면 소스코드를 볼 수 있다.

php 소스 부분만 따로 보면

preg_match($pattern, $subject [,$matches]);

: 문자열에서 정규 표현식과 일치하는 패턴을 검색하고 $matches에 검색 결과가 반환된다.

정규표현식

https://flash-ctf.tistory.com/43

 

[php] preg_match 함수

안녕하세요! 오늘은 php 함수중에 preg_match 함수에 대해서 설명할게요! 웹해킹 문제들을 풀다보면 php 코드에서 자주 등장하는 함수입니다! 먼저 어떻게 쓰이는지 알아보겠습니다 <예시>

flash-ctf.tistory.com

//사이에 있는 정규표현식대로 필터링한다. i는 대소문자를 구별하지 않는다는 뜻

\는 특수기호를 뜻하니까

앞에서부터 순서대로 띄어쓰기, /, (, ), |, &, select, from , 16진수를 필터링하고있다.

 

 

 

sql을 돌려서 id=admin인 레코드를 출력해야 solve

 

주어진 sql문은

select id from chall18 where id='guest' and no=$_GET[no]

빨강으로 표시한 부분에 들어갈 값을 잘 입력해서 원하는 결과를 만들어야한다.

힌트로 admin의 no 값이 2라고 나와있어서 내가 생각한 sql 문은

select id from chall18 where id = 'guest and no=0 or no = 2

여기서 띄어쓰기를 입력하면 필터링에 걸리기 때문에

띄어쓰기를 우회하는 방법을 찾아보았다.

https://binaryu.tistory.com/31

0%09or%09no=2 라고 입력하면 된다.

그런데 이렇게 입력창에 입력하고 제출을 누르고 url을 확인해보면

%, =가 url 인코딩되어 출력되고 있다. 

 

분명히 맞게 쿼리를 짰는데 왜 안돌아가나 싶어서 엄청 오래 뻘짓을 했다.

get방식으로 보내기때문에 바로 url에 0%09or%09no=2를 입력하면 solve

 

 

 

[출처, 참고]

http://tcpschool.com/php/php_regularExpression_concept

 

'Webhacking.kr' 카테고리의 다른 글

Challenge(old)_24  (0) 2020.05.19
Challenge(old)_19  (0) 2020.05.19
Challenge(old)_17  (0) 2020.05.19
Challenge(old)_16  (0) 2020.05.19
Challenge(old)_15  (0) 2020.05.18

댓글