본문 바로가기

분류 전체보기

(75)
6주차 C언어 #define _CRT_SECURE_NO_WARNINGS #include #include int main(void) { int a, b, c; int max, min1, min2; while (1) { scanf("%d %d %d", &a, &b, &c); if ((a == 0)&& (b == 0) && (c == 0)) break; if ((a >= b) && (a >= c)) { max = a; min1 = b; min2 = c; } else if ((b >= a) && (b >= c)) { max = b; min1 = a..
5주차_웹해킹 SQL구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어이다 SQL 테이블은 관계형 데이터베이스의 기본 요소다. SQL 데이터베이스 테이블은 행과 열로 구성다. 데이터베이스 엔지니어는 여러 데이터베이스 테이블 간의 관계를 생성하여 데이터 스토리지 공간을 최적화합니다. SQL 문 또는 SQL 쿼리는 관계형 데이터베이스 관리 시스템에서 이해하는 유효한 명령이다. 소프트웨어 개발자는 다양한 SQL 언어 요소를 사용하여 SQL 문을 작성한다. SQL 언어 요소는 올바른 SQL 문을 구성하는 식별자, 변수 및 검색 조건과 같은 구성 요소다.GET데이터베이스에서 작은 따음표로 (')로 문자 데이터를 구분하기 때문에, 작은 따음표를 입력해본다. 해당 사진과 같이 오류가 난..
5주차 암호학 패딩평문에 데이터를 붙여서 평문의 크기가 블록 크기의 배수가 되도록 만드는 과정을 패딩(Padding)이라고 한다. 패딩된 암호문을 복호화할 때는 복호화된 평문에서 패딩을 제거해야 원래의 평문을 얻을 수 있다. 따라서 패딩된 암호문의 수신자는 어떤 패딩이 적용됐는지 알아야 암호문을 제대로 복호화할 수 있다.  비트 패딩비트 패딩(Bit padding)은 마지막 블록에서 평문이 채우지 못하는 비트 중 최상위 비트를 1로 설정하고, 나머지는 모두 0으로 채우는 패딩 기법이다.수신자는 평문의 마지막 비트부터 처음으로 값이 1인 비트가 나올 때까지를 패딩으로 인식할 수 있으며 이를 제거하여 평문을 복구할 수 있다. 이를 막기 위해 비트 패딩을 적용할 때는 평문의 크기가 블록 크기의 배수이면, 패딩으로 한 블록을..
5주차_C언어 #define _CRT_SECURE_NO_WARNINGS #include #include int main(void) { char g[3]; scanf("%s", g); if (strcmp(g, "A+") == 0) printf("4.3\n"); else if (strcmp(g, "A0") == 0) printf("4.0\n"); else if (strcmp(g, "A-") == 0) printf("3.7\n"); else if (strcmp(g, "B+") == 0) printf("3.3\n"); else if (strcmp(g, "B0") == 0) prin..
4주차_시스템 shellcraft방식을 사용해봅니다. 다른 방식은 조만간 추가하겠습니다... 드림핵의 서버와 포트번호, 플래그를 입력합나다. bombdisass phase_2를 해줍니다 read_six_number를 disass해봅니다처음 숫자는 1인데 2배씩 증가하는 걸 알 수 있습니다정수가 6개 필요하다는 것을 확인할 수 있다.성공하는 걸 볼 수 있다.
4주차_C언어 #define _CRT_SECURE_NO_WARNINGS #include int main(void){ int N; scanf("%d", &N); for (int j = 0; j 1.N으로 별의 개수를 입력받는다.2.for문을 이용하여 별을 반복한다. 하나는 별의 개수가 감소하고 다른 하나는 공백의 수가 증가하므로 이를 고려한다.3.출력한다. #include #include #define MAX_LEN 101void add(char *a, char *b, char *result) { int lenA = strlen(a); int lenB = strlen(b); int lenResult = lenA > lenB ? lenA : lenB; int carry = 0, sum = 0; ..
4주차_웹해킹 HTML Injection Stored란?저장기법이라고 불린다. 공격자가 취약한 사이트에 악의적인 스크립트가 포함된 글을 업로드할 경우, 글을 열람하면 스크립트가 실행된다. 공격 당한 사용자는 쿠키를 탈취당하거나 다른 사이트로 이동된다. 대이터베이스에 저장되며 게시물을 열람한 사용자들이 공격의 대상이 된다. [low]         First name:                  Last name:                  Go        First name: Last name: Go " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스from태그를 입력해본다원래 하던 것 처럼 입력을 한다나오는 ..
4주차_암호학 AES(Advanced Encryption Standard)2001년에 새롭게 표준으로 선정된 블록 암호 알고리즘이다. AES는 전세계에서 암호 알고리즘을 공모받고, 전문가들의 심사를 거쳐 그 중에서 가장 뛰어난 알고리즘이 선정됐다. 혼돈(Confusion)과 확산(Diffusion)클로드 섀넌이 제시한 대칭키 암호가 갖추어야 할 요건이다. 초기 정의에서 발전되어 현대 대칭키 암호에 맞추어 정형화된 요건은 다음과 같다 기존 정의현대에서의 정의혼돈키와 암호문 사이의 관계가 가능한 한 복잡하여야 한다.암호문의 모든 비트는 키의 여러 부분에 의존해야 한다. 확산평문이 암호문 대부분에 걸쳐 분산되어야 한다.평문을 1비트만 바꿔도, 암호문은 절반 비트 가량이 바뀌어야 한다.  SPN AES는 SPN (Substi..
3주차_웹해킹 [low]버프스위터에서 내용을 바꾸고 확인하면 성공한 걸 알 수 있다.  [medium]low단계처럼 할 시 위와 같이 나타난다. 확인한 결과 htmli_post.php 함수를 확인해야할 필요가 있다. 사용하는 xss_check는 get과 동일하며, 인코딩 방식을 이용한다.  [high]xss_check  3을 사용하는 것을 알 수 있다. htmlspecialchars방식을 이용하기에 xss_check_3의 함수를 고치지 않는 한 풀이가 불가능하다.
3주차_시스템 셸코드셸코드(Shellcode)는 익스플로잇을 위해 제작된 어셈블리 코드 조각다. 일반적으로 셸을 획득하기 위한 목적이다. /tmp/flag를 읽는 셸코드char buf[0x30];int fd = open("/tmp/flag", RD_ONLY, NULL);read(fd, buf, 0x30); write(1, buf, 0x30); syscallsyscallraxarg0(rdi)arg(rsi)arg(rdx)read0x00unsigned int fdchar *bufsize_t countwrite0x01unsigned int fdconst char *bufsize_t countopen0x02const char *filenameint flagsumode_t mode int fd = open(“/tmp/flag”,..