1. 정의 DNS 터널링은 DNS 프로토콜을 이용하여 데이터를 전송하는 기술로, 일반적으로 DNS는 도메인 이름을 IP 주소로 변환하는 데 사용됨 또한 DNS 터널링은 데이터를 캡슐화하고 전송하는 데 사용됨 2. 목적 네트워크 보안 우회: 네트워크 보안을 우회하고 통신 가능 데이터 은닉: 데이터를 암호화하고 DNS 터널을 통해 전송함으로써 데이터를 숨길 수 있음 즉, 외부로 나가는 네트워크 트래픽 모니터링을 우회하면서 데이터를 외부로 유출하기 위해 사용 가능한 기술 3. 문법 : 데이터를 전송하기 위한 특별한 도메인 이름을 사용 : DNS 레코드 유형 (예: A, AAAA, TXT 등) : 전송하려는 데이터 4. 라이브러리 DNS 터널링을 위한 다양한 도구와 라이브러리가 있음(Iodine, Dns2tcp..
1. 문제 상황 2. 해결 과정 단순히 7z을 압축해제하려고 하면 쓰기 권한이 없어서 오류가 뜬다. 이때 /tmp 디렉터리를 잘 활용하기! file flag.txt # 타입 확인 mkdir /tmp/stone1 # 임시 디렉터리 생성 cp -a flag.txt /tmp/stone1 # 파일 복사 cd /tmp/stone1 # 디렉터리 이동 7z x flag.txt # 7zip 압축해제 unzip flag.xyz.zzz.abc # zip 압축해제 mv flag.xyz.zzz flag.xyz.zzz.gz # gzip으로 압축되어있으나 파일 확장자가 .gz가 아니어서 인식못하는 경우 파일명 변경해주기 gunzip flag.xyz.zzz.gz # gzip 압축해제 tar -xvf flag.xyz.zzz # ta..
1. 반복문 1) while - 기본 구조 # while: 반복문의 시작을 의미/ do: 반복문 코드 블록의 시작을 의미/ done: 반복문의 끝을 의미 while 조건식 do 실행할 코드 done # 한 줄로 작성 while 조건식; do 실행할 코드; done - 괄호 사용 조건문 예시 # () 괄호: 명령어 그룹화, 그룹화된 명령어는 하나의 단위로 취급 # [] 괄호: 조건식 참/거짓 여부 평가 # 주의할 점: [] 괄호 안에는 무조건 띄어쓰기해야 한다!! while read -r line; do decoded=$(echo "$line" | base64 --decode) while [[ "$decoded" != *flag:* ]]; do decoded=$(echo "$decoded" | base64..
1. 문제 설명(달리기 경주) https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # list.index()를 활용해서 풀면 시간초과 발생하여 실패 # 딕셔너리의 키:값을 활용 def solution(players, callings): position = {} for i,j in enumerate(players): position[j] = i # 인덱스(순서)를 값으로 줌 for k in callings: index = position[k] if..