ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

@Jo Grini's Blog