Question 14. pyc decompile
문제
Bughela.pyc
풀이
문제 접근시 파이썬이라는 문구와 함깨 파일이 제공된다, 제공 파일 외에는 서버시간으로 추정되는 시간이 확인되며 그외 별도 취약점은 확인되지 않는다 해당 파일의 내용을 확인해본다.
내용을 확인하려 했으나 암호화 되어 있는걸 확인할 수 있다, 디코딩 작업 후 내용 확인이 필요할 것으로 확인된다.
파이썬 모듈 중 하나인 uncompyle6의 경우는 아쉽게도 3.9version 에서는 작동하지 않는다, 그래서 VMware를 통해 KaliLinux를 통해서 모듈 설치 후 디코딩 작업을 진행하였다. 이제 확인된 코드를 분석하여 플래그를 얻어보자.
디코딩된 파일의 전문이다. 시간을 기준으로 seed 값이 정해지며 해당 seed 값을 sha512 해쉬를 진행하여 hs 값을 정한다, 그리고 현재 시간을 기준으로 start 값과 end 값이 정해진다.
즉 hs[start:end] 의 값이 flag 값이 된다.
서버의 시간과 내 컴퓨터의 시간 차이는 약 5분정도 발생하는걸로 확인된다. 즉 end 값의 tm_min+5 를 진행하면 플래그가 출력된다, 물론 정상 작동을 위해 필요없는 구문은 제외했다.
http://wargame.kr:8080/pyc_decompile/?flag=
flag는 Get_method 방식으로 전달된다고 문제에서 나와 있음으로 값을 URL과 합치면 플래그를 얻을 수 있으며 제출 시 문제를 통과할 수 있다.
'Hacking > wargame.kr' 카테고리의 다른 글
[wargame.kr] Question 16. ip log table (0) | 2021.07.19 |
---|---|
[wargame.kr] Question 15. Simple Board (0) | 2021.07.19 |
[wargame.kr] Question 13. web chatting (0) | 2021.07.19 |
[wargame.kr] Question 12. Type confusion (0) | 2021.06.30 |
[wargame.kr] Question 11. tmitter (0) | 2021.06.28 |