일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 머신러닝
- 숙명여자대학교 정보보안동아리
- siss
- 풀이
- 드림핵
- PHP 웹페이지 만들기
- 백준
- BOJ
- hackerrank
- hackctf
- The Loard of BOF
- 파이썬
- c++
- c
- C언어
- WarGame
- 웹페이지 만들기
- XSS Game
- lob
- SWEA
- 생활코딩
- Javascript
- 기계학습
- BOJ Python
- 숙명여자대학교 정보보안 동아리
- CSS
- Sookmyung Information Security Study
- HTML
- 자료구조 복습
- Python
- Today
- Total
목록siss (91)
혜랑's STORY
문제를 풀기 위해 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)..
# 공부할 때 사용한 자료 https://penggu.tistory.com/47 [스크랩] PHP란, PHP의 동작원리 Celestia님의 블로그에서 퍼온 글입니다. 이 글을 보고 PHP의 동작원리에 대해서 이해하는 데에 많은 도움이 되었습니다. 문제가 될 시 삭제 조치 하도록 하겠습니다. 좋은 글을 써주신 Celestia님 감 penggu.tistory.com https://opentutorials.org/course/3130/19316 수업의 목적 - 생활코딩 수업의 목적 2018-01-19 23:53:02 opentutorials.org http://docs.php.net/manual/kr/ PHP: PHP 매뉴얼 - Manual docs.php.net # PHP의 원리 PHP는 Server-sid..
# XSS Game 01 문제 # XSS Game 01 문제 풀이 먼저, Target code를 살펴보자. 코드를 살펴보니 XSS 필터를 비활성화 해 놓은 것을 볼 수 있다. 실제로 사용자 입력이 그대로 출력되는지 알아보기 위하여 임의의 HTML 코드를 삽입해 보았다. Hello 을 입력하자 아래와 같이 URL에 똑같이 출력되어 나오고 Hello가 출력되는 것을 확인할 수 있었다. 따라서 이번 문제를 해결하기 위해 서버에서 사용자의 입력값을 필터링하지 않는다는 것을 이용하기로 하였다. 미션이었던 자바스크립트 alert()을 삽입하기 위하여 를 입력해주었고, 아래와 같이 성공하였다는 메시지를 얻을 수 있었다.
#1 두 개의 문자열 s1, s2를 입력 받고, s1과 s2에 같은 index에 있는 문자들을 비교해서 같으면 O, 다르면 X를 출력하시오. ※조건 문자열의 길이는 모두 30을 넘지 않음 문자 비교 중 공백일 경우 X를 출력함 포인터 사용 - 풀이 문자열1, 문자열2, 인덱스 번호를 파라미터로 가지는 함수 compare()를 만든다. 이 함수는 각 문자열의 인덱스 값을 비교하고 같으면 flag에 1을 대입하고 아니면 초기의 -1값을 반환하도록 하였다. main 함수에서 while문을 둘 중 더 긴 문자열이 끝날때 까지 수행하도록 하기 위하여 두 문자열 중 더 긴 값을 n에 저장해 주었다. while문은 compare을 통해 얻은 값이 1이라면 같은 문자라는 의미이기 때문에 'O'를 출력하고, 아니면 'X..