보안

[Forensics] DFC 2020 101번 문제 풀이

융서융서 2021. 4. 5. 16:56

# 문제


# 문제 해석

(checker.pyc 파일에 담긴 내용)

: SHA1로 해싱했을 때는 같은 값이,

SHA2로 해싱했을 땐 다른 값이 나오는 두 값을 찾아,

이 두 파일의 각 SHA3-256 값을 구해 XOR 연산하여라. 


# 풀이 방법

1. checker.pyc 파일을 다운받아, 리버싱하여 .py 형태의 소스코드로 만든다.

*이 때 내가 받은 파일이 올바른지 확인하기 위해 CyberChef 사이트에서 SHA256으로 해싱하여 문제에 명시된 값과 같은지 비교해보았다

* .pyc 파일을 리버싱할 때는 Uncompyle2 라는 도구를 사용했다.


 

2. 리버싱하여 얻은 소스코드를 해석해보면,

SHA-1 해시는 같으면서 SHA-2 등의 다른 해시 값은 다른 파일을 찾으라는 내용임을 알 수 있다.

이 값은 SHA1의 취약성을 입증한 사례로, 구글에서 공개한 SHAttered 사이트에서 pdf로 제공하고 있어 다운 받았다.

사이트: shattered.io/

 

SHAttered

Isn't SHA-1 deprecated? Today, many applications still rely on SHA-1, even though theoretical attacks have been known since 2005, and SHA-1 was officially deprecated by NIST in 2011. We hope our practical attack on SHA-1 will increase awareness and convinc

shattered.io

파일 다운로드 경로는 아래와 같다.

PDF1 : https://shattered.io/static/shattered-1.pdf

PDF2 : https://shattered.io/static/shattered-2.pdf


 

3.  CyberChef 에서 파일 1,2를 SHA-1, SHA2-256으로 각각 해싱 해보자.

파일 1의 SHA1 값: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a

파일 1의 SHA2-256 값: 2bb787a73e37352f92383abe7e2902936d1059ad9f1ba6daaa9c1e58ee6970d0

 

파일 2의 SHA1 값: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a

파일 2의 SHA2-256 값: d4488775d29bdef7993367d541064dbdda50d383f89f0aa13a6ff2e0894ba5ff

 

--> 두 파일은 SHA1값은 같으면서, SHA2-256 값은 다른 것을 볼 수 있다.

 


 

4. 이제 두 파일의 SHA3-256 값을 구하자.

파일 1의 SHA3-256 값: bdf57578bea12c08aece823fed38266c9d9b7767e1d25d66083f3b5ac8196e92

 

파일 2의 SHA3-256 값: d89bdc94e5f1d1f7aee9554783558aa5eaeb5c3e0393e27ed9ad1ff26711b319

 


 

5. SHA3 - From Hex - XOR - To Hex 순서로 레시피를 조작하여 최종 답을 구하자.

최종 답:

656ea9ec5b50fdff0027d7786e6dacc977702b59e241bf18d19224a8af08dd8b

 

방법 요약

SHA3 - From Hex - XOR - To Hex 순서의 레시피를 만들고, 

Input으로 File1, File2를 모두 넣어준다.

XOR의 키 값으로는 File 1의 값을 넣는다.

 

file1의 XOR 값은 0000000... 00 으로 나오면 XOR이 정상적으로 동작한 것이므로,

file2와의 XOR 값이 두 파일의 SHA3 값을 XOR한 최종 값이다.

 

레시피 순서가 중요하다는 것 기억하기


# 나의 답

656ea9ec5b50fdff0027d7786e6dacc977702b59e241bf18d19224a8af08dd8b