반응형

인코딩 9

[CTFlearn] Tone dialing - 암호학 / DTMF

CTFlearn의 쉰 일곱번째 문제 알면 쉬운데 모르면 난감한 그런 유형의 문제이다. 근데 사실 문제 제목에서 큰 힌트를 같이 줘서 그렇게 어렵지 않게 풀 수 있다. 우선 주어진 you_know_what_to_do.wav 파일을 받아서 들어보면 뭔가 전화기 숫자 버튼을 누르는 듯한 소리가 들린다. 마침 문제 제목도 Tone dialing 이라고 되어있으니 전화기가 맞는듯 하다. 여기까지 생각했다면 문제의 의도가 명확해진다. 소리를 듣고 어떤 버튼을 눌렀는지 맞춰야 하는 것이다. 근데 사실 절대음감도 아니고, 마땅한 비교 대상이 있는것도 아니라 이 부분이 어렵다. Tone dialing 관련해서 구글에 검색하다보면 DTMF(Dual-tone multi-frequency signaling) 관련된 내용들을 ..

워게임/CTFlearn 2023.01.16

[JISCTF] Upside Down!! - 암호학 / Python

암호학 카테고리의 간단한 문제 간단한 코딩으로 풀 수 있는 문제이다. 별다른 설명 없이 암호화된 플래그가 주어진다. fkhrwv_wldm_vmtorhs_xszizxgvih_xibkgltizksb 위 내용을 Decrypt 하는것이 문제의 목표인데 문제 제목에서 힌트를 얻었다. Upside Down 이니 뭔가 알파벳으로 장난을 쳤을거라고 생각했다. 맨 앞에 있는 f 를 예로 들어보면 f는 알파벳 순서로 봤을때 6번째에 있으니 (a b c d e f) 알파벳을 z부터 a까지 거꾸로 나열했을 때 6번째에 있는 u 로 (z y x w v u) 바꾸면 되지 않을까 하는 생각이 들었다. 생각한 내용을 코드로 옮길때는 ASCII 코드표를 참고했다. 위의 표를 보면 소문자 a는 10진수로 97, 소문자 z는 10진수로 ..

CTF/암호학 2023.01.15

[CTFlearn] Encryption Master - 암호학 / Base64

CTFlearn의 쉰두번째 문제 Hard 난이도의 암호학 카테고리 문제인데 배점이 90점이나 된다. 그런데 실제로 풀어보면.. 어이없을 정도로 쉽다. 난이도는 누가 정하는건지.. 문제에서 주어지는 것은 Here ya go!.txt 파일이다. 메모장으로 열어보면 위와 같은 내용이 써있다. This is NOT going to be fun. 이라는 말과 함께 알수없는 글자들이 써있는데 데이터의 맨 끝을 보면 == 로 끝나는 것을 볼 수 있다. = 은 Base64에서 사용하는 패딩으로 저렇게 알수없는 알파벳+숫자들이 있는 데이터의 맨 끝이 = 또는 == 이라면 Base64 로 인코딩 되었다고 생각하면 거의 맞다. CyberChef(https://gchq.github.io/CyberChef) 에서 Base64 ..

워게임/CTFlearn 2023.01.02

[TeamH4C CTF] The Easiest problem of the universe - 암호학 / Base64 / Binary

'우주에서 가장 쉬운 문제' 문제가 쉽긴 하다만.. 우주에서 가장 쉬운지는 생각해볼 필요가 있다. h4c(V0hreFpreFdPSFJZTVRobldIa3dkRmd4T0hSWWVUQm5XSGt3ZEZneE9XWlllVEJuV0hrd2RGaDVNSFJZZVRCbldIa3habGg1TVdaWU1UaG5XREU0ZEV4V09IUllNVGhuV0hreFpsZ3hPV1pNVXpBOQ==) 이게 문제에서 주어진 문자열인데 데이터의 맨 끝을 보면 == 로 끝나는 것을 볼 수 있다. = 은 Base64에서 사용하는 패딩으로 저렇게 알수없는 알파벳+숫자들이 있는 데이터의 맨 끝이 = 또는 == 이라면 Base64 로 인코딩 되었다고 생각하면 거의 맞다. CyberChef(https://gchq.github.io/Cyber..

CTF/암호학 2022.12.17

[CTFlearn] So many 64s - 암호학 / Base64

CTFlearn 의 마흔두번째 문제 이번 문제는 암호학 카테고리의 문제인데 난이도가 Hard 로 분류되어 있고, 점수도 80점이나 된다. 근데 사실 나는 이 문제의 분류와 배점이 아주 잘못되었다고 생각한다. 막상 풀어보면 별다른 기술이 필요없기 때문이다. 문제 설명을 읽어보면 친구가 플래시드라이브를 훔쳐갔다가 돌려줬는데 그 안에 있던 데이터가 변경되었다고 도와(decrypt)달라고 한다. 일단 문제 제목에서부터 어떻게 풀어야 할지 감이 온다. So many 64s 라는 문장을 통해 어떤 문자열을 Base64 를 이용해 아주 많이 인코딩 해 놨을것이라고 추측이 가능하다. Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVU..

워게임/CTFlearn 2022.12.06

[Space Heroes CTF] Space Traveler - 웹해킹 / 자바스크립트

아주 쉬운 웹해킹 문제이다. 따로 소스코드 없이 문제페이지 주소만 주어진다. 문제 페이지에 접속하면 텍스트가 쭉 나오고 마지막에 Guess The Flag 라는 버튼이 보이게 된다. 해당 버튼을 클릭하면 이렇게 알림창이 하나 뜬다. 입력창에 정확한 플래그를 입력해야 문제가 풀리는 듯 하다. 놀랍게도 이전에 블로그에서 거의 똑같이 풀 수 있는 문제를 다룬적이 있었다. (https://hackingstudypad.tistory.com/44) 다시한번 느낀거지만 워게임 사이트를 많이 풀다보면 머릿속에 빅데이터가 쌓여서 실제 대회에서도 많은 도움이 되는것 같다. 문제페이지에서 f12를 눌러서 개발자도구를 이용해 웹 소스를 확인해본다. 맨 밑에쪽에 보면 태그 사이에 뭔가 알수없는 복잡한 값들이 있는걸 확인할 수 ..

CTF/웹해킹 2022.04.06

[Root Me] Javascript - Obfuscation 3 - 웹해킹 / 자바스크립트

세번째 Obfuscation 문제이다. Obfuscation 이란 난독화를 의미한다. 공격자가 자신의 악성코드가 들키기 않기위해, 또는 개발자가 자신의 프로그램을 분석하는것을 방지하기위해 주로 사용되는 기법이다. Obfuscation 1번 문제 : https://hackingstudypad.tistory.com/26 Obfuscation 2번 문제 : https://hackingstudypad.tistory.com/30 세번째 Obfuscation 문제 역시 페이지에 접속하면 비밀번호를 요구한다. 역시나 f12를 눌러 개발자도구를 이용해 웹 소스를 확인해본다. 뭔가 복잡한 자바스크립트 코드가 작성되어 있다. 가장먼저 dechiffre 라는 함수가 선언되어있고, 아래쪽에서 함수를 호출하고 있는 모습이 보인..

워게임/Root Me 2022.03.20

[Root Me] Javascript - Obfuscation 2 - 웹해킹 / 자바스크립트

두번째 Obfuscation 문제 Obfuscation이란 난독화를 의미한다. 보통 공격자가 악성코드의 분석을 방해하기 위해 사용하거나 개발자가 코드의 동작을 숨기기 위해 사용한다. 이전문제처럼 비밀번호를 알아내면 된다. 가장먼저 f12를 눌러서 개발자도구를 이용해 웹 소스를 확인해본다. pass 라는 변수에 무언가를 unescape한 값을 넣고있다. escape 함수는 인코딩, unescape 함수는 디코딩을 시켜주는 함수이다. 자세히보면 unescape가 두번 들어가 있다. 따라서 두번 디코딩을 해주면 된다. 구글에 url 디코딩 이라고 검색하면 온라인으로 디코딩 할 수 있는 사이트들이 많이 나온다. 아무곳이나 들어가서 두번 디코딩을 해준다. 첫번째 디코딩을 하면 쪼금 알아 볼 수 있는 것들이 생긴다..

워게임/Root Me 2022.03.13

[Root Me] Javascript - Obfuscation 1 - 웹해킹 / 자바스크립트

10점짜리 Javascript - Obfuscation 1 문제 Obfuscation 은 혼미, 난처함 등의 의미를 가지는 영단어인데, 정보보안에서는 주로 코드 난독화를 의미한다. 보통 공격자들이 악성코드의 동작을 숨기거나, 보안장비를 우회할때 쓰기도 하고, 개발자들도 공격자들에게 코드가 노출되는것을 방지하기 위해서 사용하는 방법이다. 문제페이지에 접속하면 알림창이 뜨면서 비밀번호를 입력하라고 한다. 마치 이전에 풀어봤던 Javascript - source 문제와 유사하다. f12를 눌러서 개발자도구를 통해 해당 페이지의 웹 소스를 살펴보면 pass = 으로 pass라는 변수를 선언하고 그 안에는 알수없는 이상한 값들이 들어가 있는것을 볼 수 있다. 이것처럼 %숫자 로 이루어진 문자열들은 url 인코딩이..

워게임/Root Me 2022.03.10
반응형