Webhacking.kr

Webhacking.kr 6번

초보에욤 2015. 8. 15. 13:16

 

6번 문제 메인 페이지, "base64" 인코딩이 힌트인 것을 알려주고 index.phps 페이지를 통해 원본

소스를 볼 수 있다.

 

 

 

 

 

 

// $val_id, val_pw 변수에 각각 "guest, "123qwe"

    문자열 저장

 

 

 

// 반복문이 20번 돌면서, $val_id, val_pw 변수를

    base64 인코딩함

 

 

 

 

 

 

 

 

 

 

 

 

 

// 20번 인코딩 된 문자열에서 특정 문자를 다른

   문자로 치환함

 

// $val_id, val_pw 변수에 동일한 치환값이 적용됨

 

// 20번 인코딩 -> 문자 치환 결과 문자열을 쿠키에

   "user", "password" 값으로 세팅

 

 

 

 

 

 

 

// $decode_id, decode_pw 변수에 쿠키 "user,

   "password" 값 저장

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

// 특정 문자를 치환 (인코딩 과정과 반대임)

 

 

 // 반복문이 20번 돌면서, $decode_id, decode_pw

    변수를 base64 디코딩 함

 

 

 

 

 

 

디코딩 된 변수의 값들이 "admin" 이면 문제 클리어

 

 

 

* 페이지에서는 초기 인코딩 변수들이 "guest", "123qwe"로 고정되어 있기 때문에 클리어를 위해서는
  "admin" 문자열을 base64 인코딩 20번 + 문자 치환를 수행한 뒤의 결과 값을 쿠키 값에
  넣으면 된다. (쿠키에 넣으면 알아서 디코딩이 되서 문제 클리어)

 

 

$val_id, val_pw 모두 "admin"을 요구하기 때문에 한번만 뽑아내면 된다.

페이지 소스를 그대로 긁어와서 초기 문자열을 "admin" 으로 바꾸고, 최종 결과 값을 출력한다.

 

 

 

"admin" 문자열 => base64 인코딩 20번 => 문자 치환 수행 후의 결과값이다.

위 문자열을 "user", "password" 쿠키값에 넣으면 문제는 클리어 된다.