-
[Webhacking.kr] 6번 풀이Wargame/webhacking.kr (old) 2019. 3. 2. 18:18
idex.phps를 클릭하여 소스 코드를 보았다.
소스를 해석해보면,
val_id에 guest, 변수 val_pw에 123qwe의 값으로 초기화한 후, 20번의 base64 인코딩을 수행하고
str_replace 함수를 이용하여 숫자들을 특수기호로 치환한다.
연산이 완료되면 val_id와 val_pw 값으로 user, password의 쿠키를 생성한다.
생성된 user, password 쿠키 값을 변수 decode_id, decode_pw의 값으로 초기화 한 후,
위에서 수행한 연산과 반대로 수행한다.
마지막으로 decode_id와 decode_pw의 값이 admin인지 비교 후,
admin일 경우 문제가 풀린다.
위에서 수행한 연산과 반대로 수행하기 때문에 str_replace 함수는 무시하면 된다.user, password 쿠키 값을 확인해보니 base64로 인코딩 된 문자열로 설정되어 있다.
이 값은 아마 guest, 123qwe의 값일 것이다.
이 쿠키 값을 admin으로 소스대로 연산을 수행한 값으로 변경해주면 될 것 같다.
손으로 연산을 수행해도 되지만, 귀찮기 때문에 php를 이용하였다.
문제 속의 소스를 복붙하고 아주 조금 수정하였다.
user와 password 모두 admin이면 되기 때문에 val_id 만을 이용하였다.
php 소스의 결과를 확인하기 위해 localhost/webhacking6.php로 접근하였다.
admin을 연산한 결과가 출력된 것을 확인할 수 있다.
user, password의 쿠키 값을 출력된 문자열로 변경해주었다.
변경한 후 새로고침(F5) 해주었더니, ID와 PW가 admin으로 변경되고 문제가 풀린다.
'Wargame > webhacking.kr (old)' 카테고리의 다른 글
[Webhacking.kr] 9번 풀이 (0) 2019.03.02 [Webhacking.kr] 8번 풀이 (0) 2019.03.02 [Webhacking.kr] 5번 풀이 (0) 2019.03.02 [Webhacking.kr] 4번 풀이 (0) 2019.03.02 [Webhacking.kr] 3번 풀이 (0) 2019.02.28 댓글