ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • |webhacking.kr| #5
    Wargame Site/Webhacking.kr 2019. 7. 2. 14:59

     

    좌측의 Login 을 클릭하면 다음과 같은 페이지가 나온다.

     

    우측의 Join 을 클릭하면 다음과 같은 페이지가 나온다.

     

     

    하지만, join 을 누르면 Access_Denied 를 볼 수 있다. 혹시나 불충분한 인가의 가능성을 믿고 mem/join.php 으로 접근해보았다.

    그랬더니 접근이 가능했다. 다음과 같은 난독화 script 가 있어서 변환을 시켜주었다.

     

     

     

     

     

     


     

    if( eval(document.cookie).indexOf(oldzombie) == -1 ) { bye; };

    if( eval(document.URL).indexOf(mode=1) == -1 ) { alert('access_denied') };

    else{

     

    [  Join   ] 


    }


     

     

    Join 으로 들어가기 위해서 필요한 두 가지 조건이 있다.

    cookie 값으로 oldzombie 를 가지고 있어야한다는 것과, URL 내부에 mode=1 이라는 문자가 들어있어야한다는 것이다.

    URL 내부에 넣을 수 있는 방법으로는 간단하게 인자로 위장해서 보내는 방법이 있을 것이다.

     

     

     

     

    조건을 충족시켜주면 난독화 밑 부분이 실행되면서 다음과 같은 Join Page 가 나온다.

     

     

     

    그렇다면, admin 을 등록하고 login 해버리면 되지 않을까?

     

     

    admin 이 이미 존재한다고한다.

     

     

     

    그렇다면 회원가입 절차에서는 admin 이 아니지만, where 절에서는 admin 으로 동작하게 해야할 것이다.

    여기서 주목해야할 것은 "문자열" 과 "문자열" 의 비교, Column 과 "문자열" 의 비교는 차이가 있다.

     

     

     

    'admin' 과 'admin     ' 은 다른 값이지만, id 와 비교할 시에는 id 자료형태에 맞춰진 형태로 들어간다.

    개인적인 추측으로 id 는 varchar(5) 로 설정되어 있는 듯하다.

    5 글자에서 잘리는 것이다.

     

    이러한 방식으로 DB 의 내용을 바꿔놓을 수 있다.

     

     

     

     

    5글자 이상의 글자를 입력할 수 있도록 조정한 뒤, 공백을 추가해서 바꿔주었다.

     

     


     

     

     

    admin 뒤에 공백을 하나 두고 가입을 해보았다.

    가입완료!!

     

     

     

     

     

     

    이제 로그인을 해보자!

     

    clear ~

    'Wargame Site > Webhacking.kr' 카테고리의 다른 글

    |webhacking.kr| #7  (0) 2019.07.02
    |webhacking.kr| #6  (0) 2019.07.02
    |webhacking.kr| #4  (0) 2019.07.02
    |webhacking.kr| #3  (0) 2019.07.02
    |webhacking.kr| #2  (0) 2019.07.02

    댓글

Designed by Tistory.