목록Write-up (52)
또 뭐하지
풀이 문제에 제공된 Roman emperor's cipher는 시저암호를 의미한다. 제공된 파일에는 암호문이 들어있다. file_path = "D:/dreamhack/Basic_Crypto1/encode.txt" with open(file_path, 'r') as f: cipher_s = f.read() L = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" def c_dec(C,K): p = "" for i in C: if i == ' ': p += '_' continue idx = L.find(i) idx = (idx-K)%26 p = p+(L[idx]) return p for i in range(0,26): tmp = c_dec(cipher_s,i) print("Key=",i," ",tmp) 시..
풀이 제공된 파일에는 암호화된 encfile과 암호화 코드인 rot128.py 파일이 포함되어있다. rot128 코드를 살펴보면 시저암호와 유사한 원리로 각 바이트를 16진수 값으로 표현하고, 해당 값을 128만큼 밀어서 새로운 값을 만들어내는 것을 알 수 있다. hex_list : 0부터 255까지의 각 숫자에 대한 16진수 표현을 담은 리스트 plain_list : plain_s에서 읽은 파일 내용을 각 바이트별로 16진수로 변환하여 저장 암호화 방식 : plain_list의16진수 값의 인덱스를 hex_list에서 찾아내고, 이를 +128만큼 이동 hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)] file_path = "D:/dreamh..
풀이 주어진 문제 파일 중 about.html에 들어갔다. 해당 페이지에서 개발자 도구를 실행해 전체 파일 검색 (ctrl+shift+f)를 통해서 flag를 검색해봤다. 원하는 flag 형식의 결과가 나오지 않았다. 다음에는 flag 형식인 DH를 검색해봤더니 원하는 flag 값을 얻을 수 있었다.
풀이 문제파일에 주어진 html 파일 살펴봤다. 클릭해야하는 호박을 볼 수 있다. js 코드를 살펴보니 counter를 100으로 나눈 나머지가 0이 될 때마다 어떤 연산이 일어나는 걸 알 수 있다. 다양한 방법이 있지만 for문을 통해 click을 만번하는 코드를 작성하기로 했다. console에 $('#jack-target').click()를 입력해보면 click이 한 번 된 것을 확인할 수 있다. 이를 for문을 통해 10000번 수행하게 하면 flag를 얻을 수 있다. for (var i=0; i