본문 바로가기

분류 전체보기479

[C] 내림차순 정렬(버블) [내림차순 정렬(버블)] n개의 수를 입력받고 내림차순으로 정렬하여라. #include int main() { int num, i, j, tmp; int *arr; scanf("%d", &num); arr = (int*)malloc(sizeof(int)*num); for (i = 0; i arr[j - 1]) { tmp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = tmp; } } } for (i = 0; i < num; i++) { printf("[%d] ", arr[i]); } p.. 2018. 9. 19.
[C] 최대 공약수 [최대 공약수] 두 수를 입력받고, 두 수의 최대 공약수를 구하여라. #include int main() { int num1, num2, i, div; scanf("%d %d", &num1, &num2); if (num1 < num2) { for (i = 2; i < num1; i++) { if (num1%i == 0 && num2%i == 0) { div = i; } } } else { for (i = 2; i < num1; i++) { if (num1%i == 0 && num2%i == 0) { div = i; } } } printf("%d\n", div); return 0; } 2018. 9. 19.
[C] 1부터 n까지의 합을 출력 [1부터 n까지의 합을 출력] n값을 입력받고 1부터 n까지의 합을 출력하여라. #include int main() { int num, i; int sum = 0; scanf("%d", &num); for (i = 1; i 2018. 9. 19.
[los.rubiya.kr] zombie_assassin #16 [zombie_assassin] 이번문제는 \우회도 안되고 '를 사용해서도 안된다..하지만 이 문제가 다른 문제와 다른점을 찾자만 ereg함수로 싱글쿼터를 막아뒀다는 점이다.preg_match와 달리 ereg함수의 문제점은 NULL(%00)값이 들어가면 문자열이 끝난것으로 인식하여더이상 문자열 검색을 하지 않는다는 점이다. 즉, ?pw=%00%27%20||%20id=%27admin%27%20--%20을 입력해도 ereg함수에 걸리지 않고 자유롭게 쓸수가 있다. 번외로 ?id=%00admin%27--%20을 입력해도 clear가 뜨지 않는 이유이다.그 이유는 (NULL)admin = 6글자 admin=5글자 이 차이때문이다.NULL값이 들어가므로써 위의 admin은 6글자가 되서 5글자인 admin과는 다.. 2018. 9. 19.
[los.rubiya.kr] assassin #15 [assassin] 이 문제는 큰따옴표를 우회를 하지 못하기 때문에 mysql에서 문자열을 검색할때 이용하는 %를 이용하여 풀면된다.예를 들어 a로시작하는 문자를 찾고싶으면 a%를ex) select * from table where name like 'a%';중간에 a가 들어가는 문자를 찾고싶으면 %a%를ex) select * from table where name like '%a%';마지막문자가 a인 문자를 찾고싶으면 %a를 문자열로 입력하면 된다.ex) select * from table where name like '%a';즉, 우리는 비밀번호를 찾기 위해서 pw=0%부터 pw=z% 까지 입력을 하면서Hello guest 또는 Hello admin이 뜨는 것을 찾으면 된다.직접 일일히 하기는 힘들기.. 2018. 9. 17.
[창기설] #1주차 정리 [#1주차] 공학(Engineering)이란?- 문제 해결의 학문이며, 인간의 삶의 질을 향상시키기 위한 실용적인 학문- 인간의 삶을 물질적으로 더 풍요롭게 하고, 환경저긍로 더 안전하고 쾌적하게 만들기 위한 지식과 활동을 모두 포함하는 매우 광범위한 학문 즉, 문제 해결의 학문, 삶의 질 향상을 위한 실용적 학문, 물질적인 풍요를 돕는 학문, 안전하고 쾌적한 환경을 위한 학문이다. 공학자(Engineer)란?- 공학 분야에 종사하는 사람 과학자와 공학자 비교- 과학자 : 아는것, 공학자 : 만드는 것(하는 것)- 과학자 : 새로운 지식 추가, 공학자 : 실용적인 문제에 적용해서 문제 해결- 21C 지식기반사회 공학자의 기본소양 : 분석적 사고력외에 판단력, 창의력, 예측능력, 팀워크 능력이나 평생학습 .. 2018. 9. 14.
[알쓸신잡] 경기대학교 사이트 주소 모음 [경기대 주소 모음] 1. 경기대학교 홈페이지- http://www.kyonggi.ac.kr 2. 경기대학교 KUTIS- http://kutis.kyonggi.ac.kr/webkutis/ 3. 경기대학교 LMS- https://lms.kyonggi.ac.kr 4. 경기대학교 사이버 안전교육- http://safety.kyonggi.ac.kr 5. 경기대학교 수강신청- http://kutis.kyonggi.ac.kr:8080/sugangLink.html 6. 경기대학교 컴퓨터과학과- http://cs.kyonggi.ac.kr 7. 경기대학교 중앙도서관- http://library.kyonggi.ac.kr/ 8. 경기대학교 전자도서관- http://ebook.kyonggi.ac.kr:8001/Kyobo_T3.. 2018. 9. 14.
[c언어 콘서트] 9장 1번 (배열 요소들의 합) [9장 1번] 1차원 배열을 받아서 배열 요소들의 합을 계산하는 함수 int get_array_sum(int *A, int size)을 구현하고 int data[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };을 가지고 테스트 하라. [풀이]#include void print_array(int *, int); int get_array_sum(int *, int); int main() { int data[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int sum; int *a = data; sum = get_array_sum(a, 10); printf("print_array()\n"); print_array(a, 10); printf("배열 요소의 합 = %d\n", .. 2018. 9. 14.
[공윤] #1주차 정리 [#1주차] 공학의 개념 및 특징- 공학(engineering) '영리한 생각' 또는 '발명' 이라는 뜻의 라틴어 'ingenium(인게니움)'에서 유래- 장치를 설계하거나 고안하던 병사를 'ingeniators(인제니에이터)'라고 불렀는데, 이것이 'engineer'로 발전- 공학은 군사 분야에서 활용되던 기술이나 장비를 일컫다가 오늘날 민간 기술자(civil engineer)들의 활동이나 이들의 양성하는 교육 프로그램으로 관련되기 시작- 즉, 인간의 삶을 향상시키기 위해 인간에게 유용한 제품을 만드는 학문이라 할 수 있다 _ 우리 삶의 모든 분야에 영향을 미침 *과학(Science)의 경우 자연현상의 원리나 법칙을 탐구하는 과정으로 공학(Engineering)에 비해 윤리적 문제가 상대적으로 많지 않.. 2018. 9. 13.
[c언어 콘서트] 8장 13번 (n의 3승 더하기) [8장 13번] 다음을 계산하는 재귀적인 프로그램을 작성하시오.1³+2³+3³+...+n³ [풀이]#include int sum(int); int main() { int num, result; printf("정수를 입력하시오 : "); scanf("%d", &num); result = sum(num); printf("%d\n", result); return 0; } int sum(int num) { if (num == 1) { return 1; } else { return (num*num*num) + sum(num - 1); } } 2018. 9. 12.
[c언어 콘서트] 8장 12번 (자리수 출력) [8장 12번] 재귀 호출을 이용하여 정수의 각 자리수를 출력하는 함수 show_digit(int x)를 작성하고 테스트하라. 즉 정수가 1234이면 화면에 1 2 3 4와 같이 출력한다. 함수는 일의 자리를 출력하고 나머지 부분을 대상으로 다시 같은 함수를 재귀 호출한다. 예를 들어서 1234의 4를 출력하고 나머지 123을 가지고 다시 같은 함수를 재귀 호출한다. 1234를 10으로 나누면 123이 되고 4는 1234를 10으로 나눈 나머지이다. [풀이]#include void show_digit(int x); int main() { int num; printf("정수를 입력하시오 : "); scanf("%d", &num); show_digit(num); printf("\n"); return 0; }.. 2018. 9. 12.
[c언어 콘서트] 8장 10번 (계산기) [8장 10번] 덧셈, 뺄셈, 곱셈, 나눗셈을 지원하는 계산기 프로그램을 작성하여 보자. 이번에는 각 연산들이 몇 번씩 계산되었는지를 기억하게 하자. 각 연산을 지원하는 함수들은 자신이 호출된 횟수를 화면에 출력한다. a) 정적 지역 변수를 사용하여 프로그램을 작성하라.b) 전역 변수를 사용하여 프로그램을 작성하라. [풀이]#include void sum(int, int); void sub(int, int); void mul(int, int); void div(int, int); int main() { int num1, num2; char cal; while (1) { printf("연산을 입력하시오(종료는 Ctrl+C) : "); scanf("%d%c%d", &num1, &cal, &num2); if .. 2018. 9. 12.
[c언어 콘서트] 8장 5번 (소수 검사) [8장 5번] 주어진 정수가 소수(prime number)인지를 검사하는 함수 prime()을 작성하라. 이 함수를 이용하여 1부터 100 사이에 존재하는 소수들을 모두 출력하라. 하나의 힘트는 소수라면 1과 자기 자신을 제외한 약수를 가지면 안 된다. 따라서 만약 정수 n이 소수인지를 검사하려면 2부터 n-1까지의 숫자로 n을 나누어서 나누어 떨어지지 않으면 소수이다. [풀이]#include void prime(int, int); int main() { prime(1, 100); return 0; } void prime(int a, int n) { int i, j; int count = 0; for (i = a; i 2018. 9. 12.
[los.rubiya.kr] giant #14 [giant] query문을 보니 select 1234 from{$_GET[shit]}prob_giant where 1 로 되어있다. 이 부분을 잘 살펴보면 오류난 곳은 없지만 from과 prob_giant 사이에 공백이 없어query문이 정상적으로 실행이 안되는 것 같다.shit에는 strlen함수에 의해서 1글자 이상 적을수 없다. 즉, 우리는 공백만 넣어야한다공백으로 \n, \r, \t, 띄어쓰기 총 4개를 preg_match함수에 의해서 못쓰게 되어있다.우리는 url인코딩을 통해서 공백으로 %20, %09, %0a, %0b, %0c, %0d를 쓸수 있다.SQL injection 우회 정리즉 %0b와 %0c 중 하나를 쓰면 된다.?shit=%0c 2018. 9. 12.
[los.rubiya.kr] bugbear #13 [bugbear] 이번 문제는 preg_match함수에 의해 싱글쿼터, substr, ascii, =, or, and, 공백, like 가 막혀있다.웬만한거는 거의 다 막아높은것 같다. 우선 싱글쿼터는 더블쿼터로, substr은 left, ascii는 우회를 안해도 될것 같고=, like 대신 in을 or는 ||, and는 &&로 공백은 탭이나 개행으로 우회를 하면 비밀번호를 구할 수 있을것 같다.우선 length함수로 길이를 구하고, left를 통해 비밀번호를 구하자.?no=""%0a||%0aid%0ain%0a("admin")%0a%26%26%0alength(pw)%0ain%0a(숫자) 이런식으로 길이를 알아내고?no=""%0a||%0aid%0ain%0a("admin")%0a%26%26%0aleft(p.. 2018. 8. 28.