본문 바로가기

웹해킹/webhacking.kr

webhacking.kr old 45번 문제풀이(Writeup)

반응형

webhacking.kr old 45번 문제풀이(Writeup)

old 45번 문제풀이(Writeup) 1

문제를 들어가면 위와 같이 출력된다.  코드가 있으니 힌트를 확인해보자.

 

 

old 45번 문제풀이(Writeup) 2

id와 pw를 입력할때 addslashes함수를 통해 싱글쿼터, 더블 쿼터, /, \, Null 앞에 \를 추가해주고 있다. 이후 id를 'utf-8'에서 'euc-kr'로 바꿔주기도 한다. euc-kr은 8bit로 된 한글 완성형 인코딩이고 멀티 바이트다.

 

preg_match를 통해 admin, select, limit, pw, =, <, > 을 터링하는 중이다.

result로 값을 받아올때 pw를 md5로 암호화하는 모습도 보인다. 이때 result로 로그인을 하면 문제가 해결된다.

 

먼저 0x, 문자열 길이가 필터링이 안되기 때문에 admin은 0x61646D696E #으로 우회하고 '='은 like로 우회하면 될 것이다.

한번 시도해보자.

 

old 45번 문제풀이(Writeup) 3

음.. 아직 잘 안된다. 찾아보니 utf-8에서의 '\'는 멀티바이트에서 다른 바이트의 문자(%a1~%fe)와 합쳐져서 문자로 인식된다고 한다. 따라서 id=%ab'을 앞에다 넣고 시도했다.

 

 

old 45번 문제풀이(Writeup) 4

인코딩을 바꿔서 멀티바이트를 사용한 SQL Injection은  처음이라 오래 걸렸다.

728x90