읽을 수 없는 문자열이 나와있고, 사진에는 K → M, O → Q, E → G만 나타나 있습니다.

이 의미는 암호학에서 알 수 있는 전치암호를 사용한 암호문 입니다.


abcdefghijklmnopqrstuvwxyz 알파벳을 나열해서 보면 k,o,e가 m,q,g가 될 때 모두 우측으로 2칸 이동한 값을 사용했다는 것을 알 수 있습니다.



python3로 작성한 코드입니다.

모든 알파벳은 ascii code로 나타낼 수 있습니다. 해당 ascii code를 통해서 +2를 해주면 문자를 변환 시킬 수 있습니다.

하지만 'z'값 이후에는 다른 값이 들어있으므로 -26을 통해 다시 맨 앞으로 가져와야 합니다.


ord(): 문자를 ascii 값으로 변환

chr(): ascii값을 문자로 변환

1
2
3
4
5
6
7
8
9
10
11
12
13
payload  ="g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. "
payload +="bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. "
payload +="sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
result =''
 
for i in range(len(payload)):
    if( ord(payload[i]) < 97 ):
        result += payload[i]
    elif( ord(payload[i])+2 <= 122 ):
        result += chr(ord(payload[i])+2)
    elif( ord(payload[i])+2 > 122 ):
        result += chr(ord(payload[i])+2-26)
print(result)
cs


i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url.

손으로 번역하지 말고 python함수를 이용하라고 합니다. ^_^

그리고 URL에 적용하라고 합니다.


map.html → ocr.jvon 로 바꿔서 입력하면 해당 파일을 받을 수 있습니다.

jvon 파일을 들어본 적 있는지 물어보는데 못 들어봤습니다..


map만 적용 시킨 ocr.html로 하니 2번 문제로 이동했습니다.



문제를 해결하고 maketrans()함수를 이용해서 간단하게 풀어봤습니다.

python2에서는 from string import maketrans 를 하고 string.maketrans() 하면 되고,

python3에서는 str.maketrans() 하면 됩니다.

1
2
3
4
5
6
7
8
9
payload  ="g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. "
payload +="bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. "
payload +="sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
 
intab="abcdefghijklmnopqrstuvwxyz"
outtab="cdefghijklmnopqrstuvwxyzab"
transtab = str.maketrans(intab,outtab)
 
print(payload.translate(transtab))
cs


'Code Challenge > pythonchallenge.com' 카테고리의 다른 글

[pythonchallenge] level 4 linkedlist  (0) 2018.12.13
[pythonchallenge] level 3 equality  (0) 2018.12.13
[pythonchallenge] level 2 ocr  (0) 2018.12.13
[pythonchallenge] level 0  (0) 2018.12.12

PYTHONCHALLENGE라는 문제입니다.

CTF 문제를 푸는 도중에 해당 사이트의 존재를 알게 되어 시작합니다.


좀 내려가면 URL 링크가 있는데 해당 링크를 클릭하면 문제가 시작됩니다.

총 33개의 문제가 있다고 합니다.




HINT로 URL을 변경하라고 합니다.

URL을 보시면 0.html이 있고 해당 화면 왼쪽 위에 0이라고 기록되어 있습니다.

또, 모니터 사진에 이 쓰여 있습니다.

0의 값을 해당 값으로 바꾸라는 의미겠죠?


python challenge인 만큼 python을 사용해 봅시다.

pow(밑,지수) 함수를 이용해 간단하게 값을 구할 수 있습니다.


274877906944.html로 수정하면 1번 문제로 이동할 수 있습니다.


'Code Challenge > pythonchallenge.com' 카테고리의 다른 글

[pythonchallenge] level 4 linkedlist  (0) 2018.12.13
[pythonchallenge] level 3 equality  (0) 2018.12.13
[pythonchallenge] level 2 ocr  (0) 2018.12.13
[pythonchallenge] level 1 map  (0) 2018.12.12

.swf 파일인 flash 파일만 <embed>태그로 불러오게 됩니다.

해당 파일에서 어떤 값을 입력해도 Wrong이라는 메시지만 띄워줍니다.


kk.js와 kk2.js도 확인해봤지만 해당 스크립트는 단순히 flash를 불러오기 위한 과정일 뿐이었습니다.



그래서 혹시 몰라 해당 파일을 다운로드 받아 메모장으로 열어보니 

아래 부분에 URL이 나와있었고 해당 URL에 접속하니 성공하게 되었습니다.



'WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] prob 23  (0) 2018.12.13
[webhacking.kr] prob 18  (0) 2018.12.13
[webhacking.kr] prob 51  (0) 2018.12.07
[webhacking.kr] prob 54  (0) 2018.12.07
[webhacking.kr] prob 47  (0) 2018.12.07

+ Recent posts