다음과 같은 창이 나와 눌러보았다.

   

다음과 같이 코드가 나왔다.

   

이것을 해석해 보면 먼저 get방식으로 받은 id변수값이 admin인지 검사하여 참이면 no! 출력한 종료되게 한다. - (1

   

그리고 id변수값을 urldecode 주어 id변수에 다시 저장한다.

   

urlencode url 통해 데이터를 전송하고자 인코딩을 해야 하는 경우에 사용된다. urlencode()함수는 인자로 전달받은 문자열 데이터를 16진수 ASCII코드로 변환하고 앞에 %기호를 붙인 형식으로 인코딩하여 반환한다.

   

값이 "admin" 같으면 문제가 해결된다.

   

   

문제를 풀기 위해서는 admin urlencode 놓는다면 (1 걸리지 않고 $_GET[id] 값이 admin 되어 문제가 풀린다.

   

   

다음 표에 맞춰서 url인코딩을 하였다.

   

admin -> %61%64%6d%69%6e

   

이때 주의해야 점은 url 인코딩 값을 적어 넣을 웹브라우저에서 디코딩 상태로 인식되므로 인코딩 주어야 문제가 풀린다.

   

admin -> %61%64%6d%69%6e -> %2561%2564%256d%2569%256e

   

다음과 같이 문제가 풀렸다.

   

'워게임 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 17번  (0) 2016.09.01
webhacking.kr 6번  (0) 2016.09.01
webhacking.kr 14번  (0) 2016.09.01
webhacking.kr 18번  (1) 2016.09.01
webhacking.kr 16번  (0) 2016.09.01

이미 문제를 풀어 다음과 같이 나와 있지만 원래

ID : guest

PW : 123qwe

였다.

   

index.phps 눌러 보자.

   

php문에서는, guest 123qwe $val_id 변수와 $val_pw 변수에 넣었다.

   

그리고 base64 20 encode 다시 변수에 저장하였다.

   

변수에 저장된 문자들을 다음과 같이 치환하였다.

   

   

값을 쿠키에 저장하고 php문이 끝나게 된다.

   

   

2번째 php문에서는 첫번째 php문에서 수행한 코드를 반대로 수행하게 된다.

   

쿠키의 값을 변수에 담아 첫번째 php에서 치환한 것과 반대로 치환한 base64 20 디코딩하였다.

   

값이 admin이면 문제가 해결된다.

   

   

문제를 풀기 위해 쿠키에 저장되어 있는 값을 guest 아닌 admin으로 변조해 주어야 한다.

   

그러기 위해서는 번째 php문에서 $val_id, $val_pw 들어간 문자열이 admin이라고 생각한 그곳에서 실행된 코드를 수행한 결과값을 쿠키에 저장해야 한다.

   

   

먼저 admin base64 20 인코딩 했다.

   

그리고 나온 값을 문자열 치환해 주기 위해 c언어로 스크립트를 작성하였다.

   

   

다음 코드로 문자열 치환한 결과값을 쿠키에 넣어주었다.

   

결과 다음과 같이 문제가 풀렸다.

   

   

'워게임 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 17번  (0) 2016.09.01
webhacking.kr 26번  (0) 2016.09.01
webhacking.kr 14번  (0) 2016.09.01
webhacking.kr 18번  (1) 2016.09.01
webhacking.kr 16번  (0) 2016.09.01

다음과 같은 창이 나왔다. 코드를 살펴보자.

   

   

다음 코드에서, 우리가 눈여겨 보아야 부분은 javascript 쓰여진 function문이다.

   

function 문을 해석해 보면 페이지의 url 변수에 저장한 ".kr" 인덱스 값을 ul변수에 넣어, 30 곱한다.

   

그리고 값과 입력한 값이 일치한다면 Password 출력하는 형식인데, Password ul변수와 우리가 입력한 값의 곱인 것을 있다.

   

그렇다면, 일단 ul변수 값에 들어간 값이 몇인지 알아보자.

   

크롬의 개발자 도구 콘솔창을 사용한다면 변수 값을 쉽게 사용할 있다.

   

변수 ul 510 들어가 있는 것을 있다.

   

따라서 password 260100 것이다.

   

문제가 풀린 것을 있다.

   

   

'워게임 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 26번  (0) 2016.09.01
webhacking.kr 6번  (0) 2016.09.01
webhacking.kr 18번  (1) 2016.09.01
webhacking.kr 16번  (0) 2016.09.01
webhacking.kr 4번  (0) 2016.09.01

+ Recent posts