전체 글(52)
-
java 입출력
프로그램을 만들려면 사용자로부터 입력을 받아 처리한 후 결과를 출력할 수 있어야 합니다. 요즘 프로그램은 그래픽 사용자 인터페이스(GUI)를 통하여 사용자 입력을 받습니다. 먼저 아래 코드는 입력 기능을 가지고 있는 클래스를 포함시키는 문장입니다. 다양한 기능을 가지는 클래스들을 제공하여 불필요한 코딩을 하지 않게 도와줍니다. import java.util.*; 두 번째로 아래 코드는 사용자로부터 입력을 받기 위해 있어야 하는 문장입니다. System.in에 연결된 Scanner 객체를 생성하는 것이죠 Scanner input = new Scanner(System,in); 또 자바에서는 정수, 문장, 단어 중 어떤 것이냐에 따라 입력받는 방식이 달라집니다. 첫 번째로 아래 코드는 정수를 읽는 코드입니다...
2023.02.03 -
데이터를 일시적으로 저장할 수 있는 스택
스택은 데이터를 일시적으로 저장하기 위한 자료구조로 가장 나중에 넣은 데이터를 가장 먼저 꺼냅니다. 데이터들을 푸시, 팝 할 때 위 사진상 노란색(3) 부분을 탑(top), 스택의 가장 밑바닥 부분을 바텀(boottom)이라고 합니다. 스택 구조체 intStack 스택을 관리하는 구조체로 IntStack은 3개의 멤버로 구성됩니다. 1. 스택으로 사용할 배열을 가리키는 포인터 stk - 스택으로 푸시된 데이터를 저장할 용도의 배열을 가리키는 포인터입니다. 2. 스택의 최대 용량 max - 스택의 최대 용량을 나타내는 멤버로 값은 배열 stk의 요소 개수와 같습니다. 3. 스택 포인터 prt - 스택에 쌓여잇는 데이터의 개수를 나타내는 멤버이고, 스택 포인터라고 부릅니다. 스택이 비어있으면 ptr의 값은 ..
2023.02.03 -
병합 정렬이란
병합 정렬은 정렬을 마친 배열의 병합을 응용하여 분할 정복법에 따라 정렬하는 알고리즘입니다. 배열을 앞부분과 뒷부분을 2등분 하여 각각 정렬한 다음 하나로 병합하는 작업을 반복하여 정렬을 수행합니다. 병합 정렬 알고리즘의 순서를 정리하면 (배열의 요소 개수가 2개인 경우) 1. 배열의 앞부분을 병합 정렬로 정렬 2. 배열의 뒷부분을 병합 정렬로 정렬 3. 배열의 앞부분과 뒷부분을 병합 조금 더 깊게 정리하자면 분할: 입력 배열을 같은 크기의 2개의 부분 배열로 분할 정복: 부분 배열을 정렬 부분 배열의 크기가 충분히 작지 않으면 순환 호출을 이용하여 다시 분할 정복 방법을 적용합니다. 결합: 정렬된 부분 배열들을 하나의 배열에 합병합니다. 병합 정렬의 단점이 있습니다. *단점* 만약 레코드를 배열로 구성..
2023.02.01 -
C언어 포인터와 참조값
포인터란 주소값을 저장할 수 있는 변수입니다. 포인터 사용법 포인터는 다른 변수의 주소를 저장할 수 있고, 포인터에 저장된 주소를 실행도중에 변경할 수 있습니다. 아래 코드도 마찬가지인 경우입니다. #include int main(void){ int x = 100; int y = 200; int *p; //정수형 포인터 변수 선언 p = &x; //포인터 p에 x의 주소를 저장 printf("p의 값=%d \n",p); printf("*p의 값 =%d \n",*p); p = &y;//포인터 p에 y의 주소를 저장 printf("p의 값 %d",p); printf("*p의 값 %d",*p); return 0; } 포인터를 사용하면 변수들의 주소 값을 바꿔서 출력할 수 있습니다. 주소를 저장하고 있는 특수한..
2023.01.27 -
xss게임 3번 문제 풀이 +xss와 csrf차이
첫 화면은 이렇게 뜹니다. 댓글창도 없고 로그인 창도 없는 것을 보니 url을 이용해야 하는 문제인 것 같습니다. 늘 했던 대로 아래와 같은 코드를 입력했더니 평소처럼 풀리지 않았습니다. 여기서 Target code를 누르면 코드가 나오는데 참고해서 풀어보도록 하겠습니다. 아래와 같은 코드를 봤을 때 이미지를 #뒤에 받은 인자를 바탕으로 불러오는 것을 볼 수 있습니다. (실제 나오는 코드) 이렇게 나머지 힌트들도 다 보았을 때 공격벡터가 window.location이라는 것을 알려줍니다. 검색을 해보니 아래와 같은 사이트가 나오는데 여기서 xss 예시 스크립트를 볼 수 있습니다. https://security.stackexchange.com/questions/177261/is-xss-possible-wi..
2023.01.27 -
xss 2번째 문제 풀이
처음 화면을 들어가면 댓글창이 나옵니다. 일단 기본적인 문제가 풀리지 않았습니다. Layer 7 수업을 통해 접했던 방법으로 댓글을 이용했을 때 img 태그를 사용했었기에 그 방법을 따라 img 태그를 넣어보려 아래와 같은 태그를 사용했습니다. 하지만 풀리지 않더라구요 ㅎㅎㅎㅎ 그러하여 alert(1)함수를 이용했더니 문제가 풀렸습니다. 여기서 onerror함수는 이미지 로딩에 실패하였을 때 쓰는 함수입니다. 코드를 작성할 때 생각해두시고 넣으면 편하실 겁니다. https://xss-game.appspot.com/level2 https://xss-game.appspot.com/level2 Oops! Based on your browser cookies it seems like you haven't pas..
2023.01.24