webhacking.kr 45번 문제(old)

2019. 11. 22. 16:54Wargame/webhacking.kr

 

소스코드를 보면 id 값이 mv_convert_encoding 함수에 의해 연산된 후 쿼리문에 적용된다.

그리고 id 와 pw 에는 admin , pw 등등의 문자열이 필터링 되고, id 가 admin 이면 문제가 풀리는 조건이다.

하지만 쿼리문에서 pw 는 md5 함수로 해시화 하기 때문에 직접 admin 의 pw 값을 알아내는 것은 어려울 것이다.

그래서 id 의 값을 이앵해 SQL Injection 을 진행해야 한다.

 

[ mb_convert_encoding ] http://php.net/manual/kr/function.mb-convert-encoding.php

불러오는 중입니다...

여기서 mb_convert_encoding 취약점이 발생하는데 

mb_convert_encoding 취약점이란?

멀티 바이트를 사용하는 언어 셋 환경에서 백슬래시 앞에 %a1~%fe의 값이 들어가면

%a1\가 하나의 문자처럼 취급된다.

따라서, magic_quotes_gpc 옵션에 의해 quotes의 입력이 제한되는 것을 우회할 수 있다.

mb_convert_encoding 함수 취약점에 의해서 ' (QUOTES)가 사용이 가능하다.

그래서 id값에 ' 를 사용해 쉽게 SQL Injection 을 수행할 수 있는것처럼 보인다.

 

id : a%aa' or id='admin'#

여기서 앞서 말한것처럼 멀티바이트를 이용해서 ' 가 사용이 가능해 졌지만 admin과 = 이 필터링 되어 있기 때문에 hex() 또는

char() 함수 등을 이용해서 admin 값을 우회 해주고 like 로 =을 우회해 주자

.

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

webhacking.kr 46번 문제(old)  (0) 2019.11.22
webhacking.kr 45번 문제(old)  (0) 2019.11.22
webhacking.kr(old) 44번 문제  (2) 2019.11.18
webhacking.kr 43번 문제(old)  (0) 2019.11.09
webhacking.kr 42번 문제(old)  (0) 2019.11.08
webhacking.kr 39번 문제(old)  (0) 2019.11.08