일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조 복습
- 드림핵
- 백준
- HTML
- 파이썬
- 숙명여자대학교 정보보안동아리
- Javascript
- hackctf
- BOJ
- 생활코딩
- 머신러닝
- 풀이
- CSS
- 숙명여자대학교 정보보안 동아리
- BOJ Python
- Sookmyung Information Security Study
- hackerrank
- c++
- PHP 웹페이지 만들기
- C언어
- lob
- c
- The Loard of BOF
- XSS Game
- 기계학습
- WarGame
- SWEA
- siss
- 웹페이지 만들기
- Python
- Today
- Total
목록2021 SISS 21기 활동 (136)
혜랑's STORY
- 문제 - 풀이 이전 문제들과 다르게 level 3은 응용 프로그램에서 페이로드(payload)를 입력할 수 없었다. 따라서 URL 표시줄에서 주소를 수동으로 편집해야 하는데 일단 주소가 어떤식으로 이루어지는지 알아보기 위하여 다른 이미지 사진들로 변경한 뒤, 주소의 변화를 알아보기로 하였다. "Image _" 버튼을 눌러 각 번호에 맞는 이미지를 보이도록 하였다. 주소를 살펴보니 다음과 같은 변화를 보였다. Image 1 클릭 -> /frame#1 Image 2 클릭 -> /frame#2 Image 3 클릭 -> /frame#3 즉, frame#____의 형식으로 내가 원하는 공격을 실행할 수 있을 것 같다. 더 자세히 알아보기 위하여 코드를 살펴보자. 코드를 살펴본 결과 html += 의 형식으로 ..
#BOJ 2941번 : 크로아티아 알파벳 - 풀이 #include int main(){ char str[101]; int cnt = 0; scanf("%s", str); for(int i=0; str[i]; i++){ if(str[i] == 'c') if(str[i+1] == '-' || str[i+1] == '=') i++; if(str[i] == 'd'){ if(str[i+1] == '-') i++; else if(str[i+1] == 'z' && str[i+2] == '=') i += 2; } if(str[i] == 'l' || str[i] == 'n') if(str[i+1] == 'j') i++; if(str[i] == 's' || str[i] == 'z') if(str[i+1] == '=') i..
#XSS Game 02 문제 #XSS Game 02 문제 풀이 먼저, Level 01에서 했던 방식대로 결과를 확인해보니 아무일도 일어나지 않았다. 다른 방법으로 링크 태그로 자바스크립트를 실행해보았다. link tage 결과는 다음과 같다. 링크가 메세지에 잘 들어가 있었고, 링크를 눌러보니 공격에 성공했다는 메시지를 얻을 수 있었다. 문제는 해결하였지만 힌트에서는 이벤트 속성 중 "onerror"를 사용하라는 것을 확인하였고 문제에서 주어진 힌트를 활용하여 문제를 풀어보도록 하자. img 태그를 사용할 때, scr의 경로가 해당 파일에 없을 때 에러를 낼 수 있는데 이를 이용하여 onerror를 유발하는 방법이다.
문제를 풀기 위해 xshell에서 gate로 로그인 해 주었다. ID : gate PW : gate 가장 먼저 존재하는 파일을 알아 보기 위해 ls -l 명령어를 실행하였다. 그 결과 gremlin.c 파일과 gremlin이라는 파일이 있는 것을 확인할 수 있다. gremlin 파일은 gremlin.c 파일을 컴파일하여 만들어진 파일 같다. gremlin.c 파일을 열어 내용을 확인해 보도록 하자. 위 코드를 살펴본 결과 256 바이트 버퍼 buffer를 스택에 할당한 후, strcpy 함수를 통해 argv[1]의 내용을 buffer에 복사하게 된다. strcpy 함수가 buffer를 복사할 때, buffer의 크기인 256 바이트가 넘는 문자열을 전달한다면 길이 제한 없이 문자열이 복사되어 스택 버퍼 ..
# BOJ 1037번 : 약수 - 풀이 어떤 수 N의 진짜 약수가 "모두" 주어진다고 했다. 즉, 주어진 수들을 정렬 한 뒤, 가장 작은 수와 가장 큰 수를 곱해주면 어떤 수 N을 구할 수 있게 되는 것이다. - 코드 #include #include void mysort(int x[], int n); int main(){ int num; scanf("%d",&num); int* measure = (int*)malloc(sizeof(int)*num); for(int i=0; i= C) printf("-1"); else printf("%d", A/(C - B) + 1); return 0; } - 실행결과
Level 5 -> 6 문제를 해결하기 위해 전 레벨을 통해 얻은 비밀번호를 사용하여 로그인 해 주었다. 주어진 문제를 통해 비밀번호가 들어있는 파일은 inhere 디렉토리 안에 있으며, -human-readable한 파일이며, 1033 바이트에 실행 불가능한 파일이라는 것을 알 수 있었다. 따라서 나는 정말 inhere 디렉토리가 있는지 확인해 보았고 inhere 디렉토리로 이동하여 크기가 1033 바이트 이상인 파일을 검색해 보았다. 그 결과 maybehre07 디렉토리의 file2 파일에 비밀번호가 담겨 있다는 것을 알 수 있었고, 비밀번호는 다음과 같이 알아낼 수 있었다. Level 6 -> 7 앞서 알아낸 비밀번호를 통해 6레벨로 이동할 수 있었다. 주어진 문제에 따라 find 명령어를 통해 소..
#5 Buffer overflow의 이해 buffer overflow 공격 실제 공격 방법을 시험해 보기 위해서는 대상 프로그램이 필요하다. 보다 쉬운 이해를 위해 buffer overflow 취약점을 가진 간단한 아래 프로그램을 사용할 것이다. #include #include #include int main(int argc, char **argv){ char buffer[1024]; if(argc>1) strcpy(buffer, argv[1]); return 1; } 소스코드가 말해 주듯이 실행 시 주어지는 첫 번째 인자를 buffer라는 char형 배열에 복사를 한다. 또한 bound check를 하지 않는 strcpy()함수를 이용하고 있다. 즉, 이 프로그램은 1024바이트의 버퍼공간에 쉘 코드와..
# 공부할 때 사용한 자료 https://opentutorials.org/course/3161/19531 데이터베이스의 목적 - 생활코딩 수업소개 데이터베이스와 스프래드쉬트의 유사점을 살펴봅니다. 이를 통해서 데이터베이스가 그렇게 낯선 것이 아니라는 것을 느끼셨으면 좋겠습니다. 또 웹애플리케이션에서 데이터베이스를 opentutorials.org #MySQL 실행하기(MySQL 서버 접속) cmd 창을 실행시킨 뒤, mysql.exe 파일이 들어있는 경로로 이동한다. 그 뒤, 다음과 같이 mysql -uroot -p를 입력하고 초기에 설정한 비밀번호를 입력하면 다음과 같이 실습을 진행할 환경이 모두 만들어 진 것이다. # MySQL의 구조 # 스키마의 사용 - 스키마(schema)란? 스키마(schema)..