webhacking.kr 39번 문제(old)

2019. 11. 8. 23:23Wargame/webhacking.kr

가장먼저 소스코드를 확인해보자.

이러한 php 코드가 있는데 여기서 오류가 발생한다.

$result 변수를 보면 id='{$_POST['id']}" 이렇게 닫는 싱글쿼터가 존재하지 않는다.

이러한 오류가 있는데 id 값을 str_replace 함수로 치환해준다.

치환값을 보면 ' 싱글쿼터는 '' 이렇게 싱글쿼터를 2개 붙혀 문자열을 닫아준다.

더블쿼터 또한 마찬가지이다.

하지만 여기서 발생하는 취약점은 substr() 함수인데 0번째부터 15번째까지 만 문자열을 잘라서 변수에 저장하기 때문에 

15번째 이후로 오는 문자는 관여하지 않는다.

그래서 아무값이나 입력한 후 15번째 자리에 ' 싱글쿼터를 하나 입력하면 str_replace 함수를 통해서 ' 싱글쿼터 하나가 16번째 자리에 들어가기 때문에 문자열은 닫히고 정상적으로 실행되는 것을 알 수 있다.

그렇다면 아무 값이나 입력하고 15번째 자리에 ' 를 입력해보자.

'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 43번 문제(old)  (0) 2019.11.09
webhacking.kr 42번 문제(old)  (0) 2019.11.08
webhacking.kr 38번 문제(old)  (0) 2019.11.08
webhacking.kr 34번 문제(old)  (0) 2019.11.08
webhacking.kr 32번 문제(old)  (0) 2019.11.08