[Webhacking.kr] old-06 (base64 활용문제)

728x90
반응형

1. 서론

본 포스팅 시리즈는 webhacking.kr의 문제 풀이를 하면서 정리한 자료이다.
필자가 풀이한 방법들이기 때문에 완벽하지 않을 수도 있다는 점을 참고 바란다. (지적과 조언은 언제나 환영이다)

이번 문제는 old-6, 코드 분석만 한다면 쉽게 풀 수 있는 문제다.

2. 본론

이번 문제에 접속하면 이런 화면을 볼 수 있을 것이다. ID와 PW를 보여주는 걸로 봐선 저 ID와 PW를 어떠한 값으로 변경해야하는 문제일 듯하다.

이건 이번 문제의 소스코드이다. 우선 코드 상단부부터 보자면, "user"라는 쿠키가 있는지 확인한 후에 없다면 하위 작업을 수행하도록 되어있다.
$val_id와 $val_pw라는 문자열 변수가 있는데 이 변수들의 값을 base64로 20번 인코딩한 뒤에 특정한 특수문자들을 숫자로 치환하여 이를 각각 "user"와 "password"라는 쿠키에 대입하게 된다.
그리고 이 쿠키들을 위에서 수행 작업을 반대로 수행하여 decode하여 원본 문자열로 만든 뒤에 처음에 봤던 ID와 PW로 보여준 것이다.

이번 문제의 해결 조건은 이 decoding된 문자열 값이 각각 "admin"과 "nimda"가 되도록 쿠키값을 변경하는 것이다.

사실 이번 문제는 그리 어려운 문제가 아니다. 단순히 소스코드 상단에 있는 문자열을 인코딩하고 문자를 치환하는 과정을 똑같이 스크립트로 만들어서 "admin"와 "nimda"를 이 과정에 대입하여 나온 결과를 얻어내고 이를 브라우저에서 쿠키값으로 넣어주면 된다.

위 코드는 필자가 만든 "admin"와 "nimda"가 인코딩 및 문자 치환이 된 값을 얻기 위한 파이썬 스크립트이다.
이 코드를 실행해 나온 결과값을 쿠키값으로 넣어주면 쉽게 해결이 가능하다.

728x90
반응형