[picoCTF] Nice netcat... 풀이

Visits: 2

문제

There is a nice program that you can talk to by using this command in a shell: $ nc mercury.picoctf.net 43239, but it doesn't speak English...


넷켓으로 접속하면 숫자만 쭈루룩 나온다.

❯ nc mercury.picoctf.net 43239
112 
105 
99 
111 
67 
84 
70 
123 
103 
48 
48 
100 
95 
107 
49 
116 
116 
121 
33 
95 
110 
49 
99 
51 
95 
107 
49 
116 
116 
121 
33 
95 
55 
99 
48 
56 
50 
49 
102 
53 
125 
10 

생긴게 100% 아스키다ㅋㅋ

하나씩 찾기 힘드니 간단하게 변환 코드 하나만 만들자.

res = `nc mercury.picoctf.net 43239`
flag = res.split.map { |num| num.to_i.chr }.join

puts flag

코드 설명

res = `nc mercury.picoctf.net 43239`

nc mercury.picoctf.net 43239를 실행하고 출력되는 값을 res에 저장하고

flag = res.split.map { |num| num.to_i.chr }.join 

res 값을 분할(split)한 다음 하나씩 불러온다(map). 그리고 그 불러온 값을 num에게 넣고(|num|) 이 값을 정수로 변경한다(.to_i). 그리고 이 정수를 해당하는 문자로 변경하고(.chr) 하나의 문자열로 합친다(.join). 마지막으로 이 값을 flag에 저장한다.

puts flag 

flag에 저장된 값을 출력한다.


이제 만들어진 루비 코드를 실행하자.

❯ ruby run.rb

끝.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다