Lab 1

728x90

get_flag() 함수 안에 key와 cipher의 배열이 있고, if문을 통해 password와 magic의 값이 일치하면 cipher의 길이만큼 for문을 돌면서 cipher와 key의 배열 요소를 하나하나씩 xor연산하여 flag을 보여준다.

/dev/urandom은 유닉스 계열 운영 체제에서 차단 방식의 유사난수 발생기의 역할을 수행하는 특수 파일이다.

그래서 난수 발생된 값과 입력한 값이 같아야 하는데, 실제적으로 입력한 값과 난수 값이 같은 경우는 매우 극악이다.

따라서 이번 문제는 password와 magic을 서로 같게 해서 푸는 방법이 아닌 파이썬을 이용하여 직접 xor연산을 해 푸는 방식으로 변경하였다.

 

import os
key = "Do_you_know_why_my_teammate_Orange_is_so_angry???"
key = list(key)
decrypted = ['']
cipher = [7, 59, 25, 2, 11, 16, 61, 30, 9, 8, 18, 45, 40, 89, 10, 0, 30, 22, 0, 4, 85, 22, 8, 31, 7, 1, 9, 0, 126, 28, 62, 10, 30, 11, 107, 4, 66, 60, 44, 91, 49, 85, 2, 30, 33, 16, 76, 30, 66]
for i in range(len(cipher)):
    print(chr(cipher[i]^ord(key[i])), end = '')

 

728x90

'Hitcon Training' 카테고리의 다른 글

LAB 14(Unsorted bin Attack)  (0) 2021.07.25
LAB 12(Fastbin attack)  (0) 2021.07.25
LAB 5  (0) 2021.07.25
LAB 5 - 미완성  (0) 2021.07.25
LAB 3  (0) 2021.07.25