[TIL] CTF (Oct 19 2022)

Captainjack·2022년 10월 19일
0

TIL

목록 보기
232/260

[Reversing] caxcan club

리버싱

-1, -3, -5, +1, +3, +5

def roll(text):
    return text[::-1]

def test_swoop(payload):
    payload = list(payload)
    for i in range(len(payload)):
        if payload[i] not in '{}':
            payload[i] = chr(ord(payload[i]) - (i % 6))
    return ''.join(payload)

def swoop(text):
    text = list(text)
    for i in range(len(text)):
        if text[i] not in '{}':
            text[i] = chr(ord(text[i]) + (i % 6))
    return ''.join(text)
    
password = input("Enter the password: ")
if swoop(roll(password)) == "}zudidsbybwxaqaqehxbebimt`jks{XNidpk":
	print("Welcome in!")
else:
    print("Sorry, wrong password.")
  1. 플래그 제출 문제
  2. 따로 설명은 없고 python 파일 하나 다운하게 해줌.
password = input("Enter the password: ")
if swoop(roll(password)) == "}zudidsbybwxaqaqehxbebimt`jks{XNidpk":
	print("Welcome in!")
else:
    print("Sorry, wrong password.")

실제로 코드를 동작시키면 입력 부분에 "Enter the password: “가 뜨고 맞는 문자열을 제출하면

"Welcome in!" 출력 틀리면 "Sorry, wrong password."출력.

  1. 두 가지 함수를 가지고 패턴을 찾아야 함.
  • python은 print() 부분을 이용하여 디버깅을 해볼 수 있다.
// 정해진 문자열을 뒤집음
def roll(text):
    return text[::-1]
def swoop(text): // 문자열을 파라미터로 받아서 돌림
    text = list(text) 
    for i in range(len(text)):
        if text[i] not in '{}': // 괄호를 제외한 부분 반복문 실행
            text[i] = chr(ord(text[i]) + (i % 6))  // 횟수에 따른 제약
						// ord() : 문자열을 아스키 코드로 변환
					  // chr() : 인티저 값을 아스키 코드로 변환
						// print(ord("~")); # 126
						// 두가지 다 쓰면 복호화 그대로 가능
    return ''.join(text) // 마지막에 문자열 전부 합쳐짐 => 1 2 3 4 5 => 12345

swoop(roll(password)) 가장 먼저 두가지를 실행하는데 // password 입력값 flag {abcdefg}로 가정

문자열 전부 뒤집고 // return : }{glaf

swoop함수에 의해서 처리 // }hhhhhbb{jeqf [ i % 6 ⇒ 나머지 값 을 더해서 문자열 증가]

  1. 결과

flagMX{ohh_the_caxcan_pass_was_easy}

  1. 후기

함수로 복호화를 할려고보니까 for문에서 계속 실수가 나와서 (쓰다보니까 알았는데 괄호를 넘겨도 반복횟수가 증가하는걸 처리해줬어야 됐네요)

abcdefghijklmnopqrstuvwxyz 알파벳에 루틴을 파악한 후에 수동으로 답 대입.


stego

stagecracker로 rockyou.txt 무차별 대입
ing

근데 가상환경에 kali로 시도하다 보니까 너무 느려서 문제.


profile
til' CTF WIN

0개의 댓글