Hack4S3cur1ty

[Christmas CTF 2016] 미스크 / Stupid RSA 본문

CTFs/2016

[Christmas CTF 2016] 미스크 / Stupid RSA

h4ck4s3cur1ty 2016. 12. 25. 04:00

문제


풀이


먼저 파일을 다운받아보면 다음과 같은 코드를 볼 수 있다.



GeneratePrime함수를 통해 p값과 q값을 생성하고, GenerateKeys함수를 통해 e, d, n 값을 생성한다.


그 후 MakeRandomString함수를 통해 랜덤값의 문자열을 헥스화 시킨 후 powmod를 통해 RSA암호화 시킨다.


시간제한은 1초로 설정되어 있고, 초과시에는 Time Out을 출력, 시간내에 Data값과 Answer값이 일치하면 FLAG가 출력된다.


우선 전체적인 로직을 파악하기 위해 코드를 정리했다.




test code.py

통신관련 함수를 때내고 p, q, n, d, plain text값을 출력하도록 하고 실행시켜본 결과 p, q, n, d 값이 일정하다는 것을 알 수 있었다.





p, q, n, d에 관한 함수들을 그대로 욺겨오고 Decrypt를 위해 int2Text 함수와 modSize함수를 추가했다.


recv로 EncryptMSG를 받아와서 pow를 통해 d, n값을 이용하여 EncryptMSG를 Decrypt한 후 send로 값을 보낸다.





Stupid RSA.py



FLAG : I_Love_Y0u_and_W3_Love_Y0u_Exc3pt_HER..TT




Comments