SCP 동아리에서 학과 행사로 주최한 CTF로 초보자들을 위한 난이도입니다. 제가 출제했던 WEB 문제들의 출제 의도와 write-up입니다. 링크 : http://jbuctf.online/ JBU CTF jbuctf.online 문제 이름 : Cookie Monster 출제 의도 쿠키 값을 조작함으로 로그인을 할 수 있다는 사실을 알고 있는지 확인 인코딩 된 상태를 보면 디코딩을 떠올릴 수 있는지 확인 Fiddler를 사용해서 값을 조작할 수 있는지 확인 문제 풀이 문제에 들어가면 보이는 로그인 창에 임의의 id, password를 넣어주고 버튼을 눌러보지만, 버튼이 동작하지 않는다. 코드를 확인해보면, php언어로 짜여진 코드가 힌트로 제공되고 있다. cookie에 id와 password에 값이 존재..
이번 문제는 시프트 연산자 문제이다. 시프트 연산자는 > 오른쪽으로 시프트 후 할당 문제에서 요구하듯 unsigned long long으로 변수 a를 선언해준다. 그리고 scanf로 변수 a의 값을 받아준다. 다음 출력할 때도 마찬가지로 주어진 서식지정자로 a의 값을 왼쪽으로 20번 오른쪽으로 4번 시프트해주고 출력해주면 된다. a > 4 이렇게 해주면 된다. 답은 #define _CRT_SECURE_NO_WARNINGS #include int main() { unsigned long long a; scanf("%llu", &a); printf("%llu", a > 4); }
먼저 두 정수를 입력 받기 위해 int a,b; 를 선언해주자 다음으로 두 값을 논리 연산자를 이용해 비교해주고 삼항연산자로 참, 거짓을 출력하도록 해주자 논리 연산자 AND -> && OR -> || NOT -> ! 를 이용해주면 된다. 답은 #define _CRT_SECURE_NO_WARNINGS #include int main() { int a, b; scanf("%d %d", &a, &b); printf("%s\n", a&&b ? "참" : "거짓"); printf("%s\n", a||b ? "참" : "거짓"); printf("%s\n", !a ? "참" : "거짓"); return 0; }
#define _CRT_SECURE_NO_WARNINGS #include int main() { int c; int a, b; printf("원하는 연산자를 골라주세요.\n1.+\n2.-\n3.*\n4./\n"); scanf("%d", &c); if (c != 1 && c != 2 && c != 3 && c != 4) { printf("잘못된 연산자입니다"); } else { printf("정수 두 개를 입력해주세요"); scanf("%d %d", &a, &b); if (c == 1) { printf("%d + %d = %d", a, b, a + b); } else if (c == 2) { printf("%d - %d = %d", a, b, a - b); } else if (c == 3) { printf..
if문으로 어린이 범위를 설정해준다. 그리고 else if문을 이용해 청소년과 성인 범위를 설정해주고 각 조건마다 값을 balance에 저장해준다. 답은 if (age >= 7, 12 >= age) { balance = balance - 450; } else if (age >= 13, 18 >= age) { balance = balance - 720; } else if (age >= 19) { balance = balance - 1200; }
- Total
- Today
- Yesterday