ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] Challenge 6
    Security/Wargame 2014. 10. 7. 00:33
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    안녕하세요.

    오늘은 Webhacking.kr 의 6번 문제 풀이를 작성해보도록하겠습니다.


    6번 문제에 접속하시면 다음과 같은 화면을 보게됩니다.




    ID: guest

    PW: 123qwe


    라는 내용을 보게 되고,

    Hint 는 base64 라고 주어졌습니다.


    일단 소스를 한번 보도록 하죠


    index.phps 로 들어갑니다.




    위와 같은 소스를 보게 됩니다.

    소스를 분석해 보도록하죠

    쿠키값이 없을 경우
    id는 guest
    pw는 123qwe
    로 선언 후
    각 값을 가지고 base64 Encode를 20번 합니다.
    그리고 나온 결과값에서
    1 -> !
    2 -> @
    3 -> $
    4 -> ^
    5 -> &
    6 -> *
    7 -> (
    8 -> )
    로 치환을 하게 됩니다.

    그리고 치환된 값을
    user에 id를 password에 pw를 넣어주고 새로고침을 시킵니다.

    그럼 문제를 클리어하려면 어떤 조건이 필요한지 마지막 쪽을 보시면

    if($decode_id=='admin' && $decode_pw=='admin')
    이고, 위에부터 보면 쿠키값을 읽어와
    위에서 치환했던 것들을 반대로 치환후 base64 Decode 를 20번 해줍니다.
    즉 원래 문자열로 원복하는거죠.
    그래서 나온 원본문자열이 admin 이면 문제를 해결할 수 있습니다.

    즉 우리가 이 문제를 해결하려면
    위에서 처음 id,pw 를 인코딩/치환 한것처럼
    admin 이라는 문자열을 20번 인코딩/치환 한 후
    쿠키값을 변조해주시면 문제를 해결할 수 있는 겁니다.


    해당 인코딩/치환, 치환/디코딩 을 구현한 파이썬 스크립트를 첨부합니다.






    'Security > Wargame' 카테고리의 다른 글

    [Webhacking.kr] Challenge 9  (5) 2015.08.05
    [Webhacking.kr] Challenge 7  (0) 2014.10.07
    [Webhacking.kr] Challenge 5  (0) 2014.07.10
    [Webhacking.kr] Challenge 4  (0) 2014.07.10
    [Webhacking.kr] Challenge 3  (0) 2014.06.19

    댓글

Designed by Tistory.