TJ2020] Write ups - Others

노션으로 옮김·2020년 5월 26일
1

wargame

목록 보기
54/59
post-thumbnail

Miscellaneous

CensorShip

My friend has some top-secret government intel. He left a message, but the government censored him! They didn't want the information to be leaked, but can you find out what he was trying to say?

nc p1.tjctf.org 8003

nc로 접속해보면

수식의 정답을 입력받는다.
올바른 값을 입력할 경우 flag 포맷으로 출력해주나 필터링되어 있다.

풀이

숫자가 아닌 값을 입력하면 에러를 확인할 수 있다.

Traceback (most recent call last):
  File "/censorship.py", line 10, in <module>
    if int(res)==rand1+rand2:
ValueError: invalid literal for int() with base 10: '12asdf'

하지만 어떤 힌트도 얻을 수 없었다.

nc로 통신하는 과정에서 힌트가 있을 것이라고 생각하고 디버그 모드로 송수신되는 데이터를 확인했다.

from pwn import *

context.update(arch='amd64', os='linux', log_level='debug')

p = remote('p1.tjctf.org', 8003)

import re
pt = re.compile('[0-9]+ \+ [0-9]+')
_recv = p.recvrepeat(1)
mt = pt.findall(_recv)
p.sendline(str(eval(mt[0])))
p.interactive()

그리고 CENSORED 이전에 수신된 값에서 플래그를 확인할 수 있었다.
nc로 접속했을 때 확인할 수 없었던 것은 \r (Carriage Return)으로 인해 CENSORED가 플래그값을 덮어쓰기 때문이었다.

tjctf{TH3_1llum1n4ti_I5_R3aL}

Timed

I found this cool program that times how long Python commands take to run! Unfortunately, the owner seems very paranoid, so there's not really much that you can test. The flag is located in the file flag.txt on the server.

nc p1.tjctf.org 8005

접속하면 파이썬 코드를 입력할 수 있고, 입력한 코드를 수행하는데 걸린 시간을 알려준다.
몇가지 특수기호나 함수는 필터링 된다.

풀이

문제에 보면 서버에 flag.txt가 존재한다고 설명했다.
그래서 파일을 열어서 출력시켜봤다.

print(open('flag.txt').read(100))

실행은 되지만 내용을 확인할 수 없었다.
내용을 출력시킬 방법을 고민하다가 예외를 이용할 방법이 떠올랐다.

문제에서 예외에 대한 내용은 확인할 수 있다.
그리고 파이썬에서는 예외를 의도적으로 발생시킬 수 있다.

예외 내용으로 플래그값을 출력시키면 확인할 수 있을 것이다.

raise TypeError(open('flag.txt').read(100))

tjctf{iTs_T1m3_f0r_a_flaggg}


Crypto

Circle

Some typefaces are mysterious, like this one - its origins are an enigma wrapped within a riddle, indeed.

Circles.png

Circle로 인코딩(?)된 플래그 값이다.

풀이

매칭되는 표를 찾는데 오래 걸렸다.

https://imgur.com/kjeAhf0

tjctf{B3auT1ful_f0Nt}

Speedrunner

I want to make it into the hall of fame -- a top runner in "The History of American Dad Speedrunning". But to do that, I'll need to be faster. I found some weird parts in the American Dad source code. I think it might help me become the best.

접속해보면 암호화된 문자열이 있다.

풀이

Shift 암호화가 되어있다. 복호화 사이트에서 플래그를 확인할 수 있다.

TJCTF{NEW_TECH_NEW_TECH_GO_FAST_GO_FAST}

RSABC

I was just listening to some relaxing ASMR when a notification popped up with this.

ASMR은 유튜브 영상인데 필요없어 보이고
this에 걸린 링크를 들어가면 n,e,c를 제공한다.

풀이

rsa 크랙 툴로 해결할 수 있다.

root@hp-virtual-machine:/work/tools/RsaCtfTool# python3 RsaCtfTool.py -n 57772961349879658023983283615621490728299498090674385733830087914838280699121 -e 65537 --uncipher 36913885366666102438288732953977798352561146298725524881805840497762448828130

[*] Testing key /tmp/tmpc2m7ehf6.
Can't load smallfraction because sage is not installed
Can't load boneh_durfee because sage is not installed
Can't load ecm2 because sage is not installed
Can't load qicheng because sage is not installed
Can't load ecm because sage is not installed
Can't load roca because sage is not installed
[*] Performing pollard_p_1 attack on /tmp/tmpc2m7ehf6.
[*] Performing partial_q attack on /tmp/tmpc2m7ehf6.
[*] Performing primefac attack on /tmp/tmpc2m7ehf6.
[*] Performing cube_root attack on /tmp/tmpc2m7ehf6.
[*] Performing noveltyprimes attack on /tmp/tmpc2m7ehf6.
[*] Performing fermat attack on /tmp/tmpc2m7ehf6.
[*] Performing comfact_cn attack on /tmp/tmpc2m7ehf6.
[*] Performing mersenne_primes attack on /tmp/tmpc2m7ehf6.
[*] Performing siqs attack on /tmp/tmpc2m7ehf6.
[!] Yafu SIQS is not working.
[*] Performing pastctfprimes attack on /tmp/tmpc2m7ehf6.
[*] Performing smallq attack on /tmp/tmpc2m7ehf6.
[*] Performing factordb attack on /tmp/tmpc2m7ehf6.

Results for /tmp/tmpc2m7ehf6:

Unciphered data :
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00tjctf{BOLm1QMWi3c}'

tjctf{BOLm1QMWi3c}

Tab Dancing

My friend is trying to teach me to dance, but I am not rhythmically coordinated! They sent me a list of dance moves but they're all numbers! Can you help me figure out what they mean so I can learn the dance?

NOTE: Flag is not in flag format.

다음과 같은 암호문을 제공한다.

1101111102120222020120111110101222022221022202022211

풀이

3가지 문자로 이뤄진 것을 봤을 때 모스부호를 떠올릴 수 있다.

https://en.wikipedia.org/wiki/Morse_code

그리고 디코딩 사이트에서 복호화시키기 위해, 사이트가 제공하는 포맷으로 암호문을 1차 디코딩해야 한다.

1 = . 
0 = / (space)
2 = _ 
``

```python
cipher = '1101111102120222020120111110101222022221022202022211'

dec = ''
for x in cipher:
    if x == '1':
        dec += '.'
    elif x == '0':
        dec += '/'
    elif x == '2':
        dec += '_'
print 'decoded : ' + dec

그리고 사이트에서 복호화시키면 플래그를 획득할 수 있다.

I 5 K O T A 5 E J 9 O T 8

0개의 댓글