목록분류 전체보기 (289)
촉촉한초코칩
보호되어 있는 글입니다.
보호되어 있는 글입니다.

문제 파일 코드를 살펴보면 host 값을 ping 명령어의 인자로 전달한다. 문제에 나와 있는 것처럼 flag.py를 열어야 FLAG를 얻을 수 있을 것 같다. 개발자 도구를 통해 입력값 정규표현식을 보면 이렇게 나와 있다. 메타문자는 포함이 안 되므로 전송이 안 되기 때문에 정규표현식을 바꿔서 입력해주었다. 먼저 메타 문자 중 명령어 구분자를 사용해서 host번호와 ls 명령어를 실행하면 파일 목록이 나온다. 8.8.8.8";"ls flag.py 파일을 열어야 하므로 cat 명령어를 사용해서 연다. cat과 파일명 사이에 공백이 있어야 하므로 이번에도 “ ”를 사용한다. 8.8.8.8";"cat" "flag.py

Stage 7 Command Injection ServerSide: Command Injection 다양한 웹 애플리케이션 제작용 언어는 시스템에 내장되어있는 프로그램들을 호출할 수 있는 함수를 지원한다. 각 언어별 시스템 함수 언어 시스템 함수 언어 시스템 함수 PHP system Node JS child_process 파이썬 os.system 전달된 인자를 셸 프로그램에 전달해 명령어를 실행한다. ex) system(“cat /etc/passwd”) > 셸 프로그램으로 cat /etc/passwd를 실행한 것과 동일 시스템 함수를 사용하면 이미 설치된 소프트웨어들을 쉽게 이용할 수 있다는 장점이 있지만 함수의 인자를 셸의 명령어로 전달한다는 점에서 취약점으로 이어지기도 한다. > 명령어를 실행해주는 ..
문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 먼저 입력받을 정수 변수와 정수의 길이를 확인할 변수(cnt) 두개를 선언하고 정수를 입력받는다. 그리고 정수 배열 변수를 하나 선언해서 입력받은 정수를 하나씩 넣는다. 이때 while문이 돌아가는 횟수에 따라 cnt를 하나씩 증가시킨다. 그리고 temp 변수를 선언하여 cnt만큼 돌아갈 이중for문을 만들고 하나씩 비교해서 자리가 바뀌도록 만든다. https://mangoreview.tistory.com/entry/C%EC%96%B8%EC..

문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다. 상근이의 할머니는 전화 번호를 각 숫자에 해당하는 문자로 외운다. 즉, 어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 걸면 된다. 예를 들어, UNUCIC는 868242와 같다. 할머니가 외운 단어가 주어졌을 때, 이 전화를 걸기 위해서 필요한 최소 ..