본문 바로가기
Security/[게임] CTF 풀이

Hacklu 2013 Internal150 writeup

by blackcon 2013. 10. 25.
728x90

문제로 안드로이드 덤프파일이 주어진다.

/data/system에 저장된 gesture.key(휴대폰 락스크린 정보가 저장된 파일)가 있는데 “haha cant get me I made back up zz”로 나온다. 이 문제의 hint이고, /data/backup폴더를 보면 아래아 같이 여러 파일들이 있는 것을 볼 수 있다.

모든 파일이 이런 형태이고, 30개정도 있다. 내용은 SHA-1값인데 이 파일들이 gesture.key파일이다.

각 파일들은 아래의 hash를 담고있는데 중복된 hash도 몇 개 있다.

23a6e7c835cd75c3f17ecc4d1cd7d840b7409525

b3f4101390eaa4747d7e8a81935a0e6f89dfa53c

82c2169c4440fee969c3ac0be7be28334ec0d866

5865c4f5e1e417f31c5e0f134e08d62d57e1470d

06c65f3452c48504305234dc005f5efbeb3d185f

960530aaddf48e841afe6e4b34b913effc92554f

ec00c8c3112383b697c54b07e1ef7910546037f5

각각 파일을 만들어서 crack_pattern.py를 이용해서 패턴 정보를 얻을 수 있다. 그 결과 패턴 모양대로 선을 그으면 특정 숫자가 나온다.

23a6e7c835cd75c3f17ecc4d1cd7d840b7409525 5

b3f4101390eaa4747d7e8a81935a0e6f89dfa53c 9

82c2169c4440fee969c3ac0be7be28334ec0d866 3

5865c4f5e1e417f31c5e0f134e08d62d57e1470d 7

06c65f3452c48504305234dc005f5efbeb3d185f 6

960530aaddf48e841afe6e4b34b913effc92554f 8

ec00c8c3112383b697c54b07e1ef7910546037f5 2

그 다음 30개정도의 파일을 시간순으로 정렬한 다음 패턴으로 구한 숫자를 대입한다.

 

5865c4f5e1e417f31c5e0f134e08d62d57e1470d   7

23a6e7c835cd75c3f17ecc4d1cd7d840b7409525 5

5865c4f5e1e417f31c5e0f134e08d62d57e1470d   7

82c2169c4440fee969c3ac0be7be28334ec0d866  3

5865c4f5e1e417f31c5e0f134e08d62d57e1470d   7

06c65f3452c48504305234dc005f5efbeb3d185f    6

5865c4f5e1e417f31c5e0f134e08d62d57e1470d    7

06c65f3452c48504305234dc005f5efbeb3d185f    6

b3f4101390eaa4747d7e8a81935a0e6f89dfa53c    9

23a6e7c835cd75c3f17ecc4d1cd7d840b7409525   5

06c65f3452c48504305234dc005f5efbeb3d185f    6

23a6e7c835cd75c3f17ecc4d1cd7d840b7409525   5

5865c4f5e1e417f31c5e0f134e08d62d57e1470d    7

06c65f3452c48504305234dc005f5efbeb3d185f     6

5865c4f5e1e417f31c5e0f134e08d62d57e1470d     7

06c65f3452c48504305234dc005f5efbeb3d185f     6

b3f4101390eaa4747d7e8a81935a0e6f89dfa53c    9

23a6e7c835cd75c3f17ecc4d1cd7d840b7409525    5

5865c4f5e1e417f31c5e0f134e08d62d57e1470d     7

ec00c8c3112383b697c54b07e1ef7910546037f5     2

960530aaddf48e841afe6e4b34b913effc92554f     8

23a6e7c835cd75c3f17ecc4d1cd7d840b7409525    5

5865c4f5e1e417f31c5e0f134e08d62d57e1470d     7

5865c4f5e1e417f31c5e0f134e08d62d57e1470d     7

06c65f3452c48504305234dc005f5efbeb3d185f      6

23a6e7c835cd75c3f17ecc4d1cd7d840b7409525     5

5865c4f5e1e417f31c5e0f134e08d62d57e1470d      7

960530aaddf48e841afe6e4b34b913effc92554f      8

960530aaddf48e841afe6e4b34b913effc92554f      8

82c2169c4440fee969c3ac0be7be28334ec0d866     3

모두 연결 : 75 73 76 76 95 65 76 76 95 72 85 77 65 78 83

>>> a = array.array('B', [75, 73, 76, 76, 95, 65, 76, 76, 95, 72, 85, 77, 65, 78, 83])

>>> a.tostring()

'KILL_ALL_HUMANS' //this is the flag!!  

728x90