Dreamhack(web) - web-deserialize-python 풀이

O_o22

·

2022. 11. 4. 22:47

 

접속 시 위와 같은 화면이 나오고, Create Session 과 Check Session 두 가지가 보인다.

 

Create Session 같은 경우. Name Userid Password를 입력하여 세션을 만들 수 있는 것 같다.

 

이런식으로 만들어지는데, 자세히 살펴보니 끝이 =로 끝나 base64 인코딩한 것 같다.

 

check session 에서는 방금 얻은 인코딩문을 넣어 어떤 내용으로 만들어졌는지 확인할 수 있는 것 같다.

 

플라스크 설정 파일을 보면

 

flag를 읽어야하는데, pickle 이라는 것을 이용하여, 튜플을 덤프 뜨고 있다.

구글링을 통해 pickle의 활용법을 확인하고, 취약점이 존재한다는 점도 확인했다.

덤프를 뜨고 객체를 바이너리로 사용할 때, 함수를 떠볼 수 있다는 사실!

 

취약점이 있는대로 코드를 짜보고, 얻은 인코딩문을 활용한다.

 

사용이 잘 되는 것을 확인했다.

 

 

 

반응형