보호되어 있는 글입니다.
분류 전체보기
먼저 해당 문제를 들어가면 문제 파일과 KEY Format이 제공되었다. 문제를 풀기 위해 해당 이미지 파일을 열면 오른쪽 이미지와 같은 파일을 볼 수 있었다. 문제에서 KEY Format을 ABCTF{(key)} 이라고 단서를 제공해주었기 때문에 HxD 프로그램에 해당 이미지 파일을 넣고 KEY Format의 일부인 ABC를 넣어 찾기를 진행하였다. 그 결과, ABC로 시작하는 Key 값을 찾을 수 있었고, 최종 키 값인 ABCTF{forensics_1_tooo_easy?} 을 넣어 제출했더니 문제를 풀 수 있었다!! 문제 해결 완료!!
문제 설명 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 풀이과정 #define _CRT_SECURE_NO_WARNINGS #include int Han(int n) // 한수 함수 정의 { int i, cnt = 0, hund, ten, one; if (n < 100) // 입력 값 n이 100보다 작을 경우, n 그대로 출력 return n; else { ..
문제 설명 (A+B)%C는 ((A%C) + (B%C))%C 와 같을까? (A×B)%C는 ((A%C) × (B%C))%C 와 같을까? 세 수 A, B, C가 주어졌을 때, 위의 네 가지 값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) 출력 첫째 줄에 (A+B)%C, 둘째 줄에 ((A%C) + (B%C))%C, 셋째 줄에 (A×B)%C, 넷째 줄에 ((A%C) × (B%C))%C를 출력한다. 풀이과정 #define _CRT_SECURE_NO_WARNINGS #include int main(void) { int a, b, c; scanf("%d %d %d", &a, &b, &c); printf("%d\n", (a+b)%c); pri..
16번 문제를 보면 이렇게 별이 나와있다 첨에 어떻게 접근해야할지 몰라서 아무거나 입력해봤는데 노란색 별표 위에 색별로 작은 별표시가 있는 것을 볼 수 있었다. 이걸로는 문제를 해결할 수 없으니 바로 소스코드를 확인해보자 사실 소스코드를 확인하기 전에 전에 풀었던 문제처럼 쿠키를 편집해야하나 해서 EditThisCookie로 쿠키값을 바꿔야하나 해서 쿠키값을 임의로 막 바꿔봤는데 쿠키값을 잘 못 바꾼 나머지 Webhacking.kr 홈페이지 로그인이 전혀 안되서 진짜 진땀을 뺐었다....ㅎㅎ 아래 소스코드를 확인해보면 마지막 if문에 주석으로 do it!이라고 적혀있는 것을 보고 이 조건문을 실행시켜주어야 할 것 같다고 생각했다. 조건문 실행을 위해 코드를 살펴보면 kk(1, 1) 함수로 별(*)의 처음..
문제를 들어가보면 달랑 이거밖에 나온다....ㅎ 그래서 바로 view-source를 클릭해서 소스를 확인해봤다. 소스코드를 확인해보면 다음과 같다. if($_GET['id'] == "admin"){ solve(26); } 이 부분을 통해서 id 값이 admin이면 문제가 해결되는 것을 볼 수 있었다. 이 문제를 해결하기 위해 그 윗부분 코드를 살펴봤다. if(preg_match("/admin/", $_GET['id'])) { echo"no!"; exit(); } $_GET['id'] = urldecode($_GET['id']); 해당 부분을 분석하면 문제를 해결할 수 있을 것 같아 살펴보았다. preg_match() 함수 - 정의 : 해당 문자열에서 전달받은 정규 표현식과 일치하는 패턴을 검색 - 문법 ..