일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 파이썬
- Python
- 풀이
- 기계학습
- 드림핵
- 생활코딩
- c
- lob
- Javascript
- 숙명여자대학교 정보보안 동아리
- 머신러닝
- hackctf
- HTML
- PHP 웹페이지 만들기
- The Loard of BOF
- WarGame
- 숙명여자대학교 정보보안동아리
- 웹페이지 만들기
- 자료구조 복습
- c++
- BOJ Python
- CSS
- XSS Game
- BOJ
- hackerrank
- 백준
- SWEA
- Sookmyung Information Security Study
- C언어
- Today
- Total
목록siss (91)
혜랑's STORY
Bandit Level 0 터미널 창을 열고 ssh bandit0@bandit.labs.overthewire.org -p220을 입력한다. (ssh서버에 포트 2220을 사용해서 접속하겠다는 뜻) 비밀번호는 bandit0을 입력한다. 접속 완료! Level 0 -> Level 1 힌트로 "ls, cd, cat, file, du, find"가 주어졌다. 하나씩 입력하여 비밀번호를 찾아보자 ls를 통하여 현재 디렉토리에 존재하는 파일의 목록을 살펴보았다. 그 결과 readme 파일이 존재한다는 것을 확인하였고 cat 명령어를 통해 readme 파일의 내용을 살펴보았다. readme 파일은 boJ9jbbUNNfktd78OOpsqOltutMc3MY1 이라는 내용을 담고 있었고 이 값이 Level1로 가는 비밀번..
#4 프로그램 구동 시 Segment에서는 어떤 일이? 프로그램이 실행되어 프로세스가 메모리에 적재되고 메모리와 레지스터가 어떻게 동작하는지 알아보기 위하여 간단한 프로그램 예를 들어 보았다. void function(int a, int b, int c){ char buffer1[15]; char buffer2[10]; } void main(){ function(1, 2, 3); } 실행 결과 이러한 결과가 나왔다. simple.c 프로그램이 컴파일 되어 실제 메모리 상에 어느 위치에 존재할지 알아보기 위해 컴파일 한 뒤, gdb를 이용하여 어셈블리 코드와 메모리에 적재될 logical address를 살펴보도록 하자. 앞에 붙어 있는 주소가 logical address이다. 이 주소를 자세히 보면 fu..
1. XSS(Cross-site-Scripting) 공격이란? 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나, 주로 사용자의 정보(GET, POST, COOKIE, SESSION 등)를 탈취하기 위하여 특수 문자나 예약어, 스크립트를 나타내는 (, ), !, @, {, }, \n, \t, \0, ', ", >, 스크립트 태그로 자바스크립트를 실행 예제 설명 -> 스크립트 태그의 스크립트를 실행시킨다. 브라우저단에서 필터링 해주는 경우도 있으나 아래와 같이 예외 코드도 있다. 2) 자바스크립트 태그 방법 -> 링크 태그로..
#BOJ 10809 : 알파벳 찾기 - 풀이 search() 함수는 알파벳이 등장하는 위치를 알아내기 위한 함수이다. 만약 단어의 i번째에 알파벳이 위치한다면, i를 반환하고 그렇지 않으면 초기에 설정해둔 -1값을 반환한다. 알파벳의 처음부터 끝까지 -1 또는 등장하는 위치를 출력해야 하기 때문에 alpha라는 배열에 a-z까지 넣은 배열을 생성하였다. 단어 S를 입력받고 a-z까지 앞에서 만들어둔 search() 함수를 이용하여 위치값 또는 -1을 출력한다. - 코드 #include #include int search(char *x, char y){ int n = -1; for(int i=0; x[i]; i++){ if(x[i] == y){ n=i; break; } } return n; } int ma..
#1 목적 이 문서는 시스템에서 원하는 명령을 실행시키기 위해 사용되는 Buffer Overflow 공격에 대한 원리와 지식들을 설명한다. 즉, Buffer Overflow 공격이 어떻게 이루어지는지, 이러한 공격이 가능하게 되는 그 원리와 컴퓨터 시스템의 기본 구조에 대해서 설명하고 있다. #2 8086 Memory Architecture 8086 시스템의 기본적인 메모리 구조는 위 그림과 같다. 시스템이 초기화 되기 시작하면 시스템은 커널을 메모리에 적재시키고 가용 메모리 영역을 확인한다. 시스템은 운영에 필요한 기본적인 명령어 집합을 커널에서 찾기 때문에 커널 영역은 반드시 저 위치에 있어야 한다. 32bit 시스템에서는 CPU가 한꺼번에 처리할 수 있는 데이터가 32bit 단위이므로, 메모리 영역..
# 프로세스 이미지 - 프로세스 : 실행중인 프로그램(프로그램 자체가 프로세스는 아님) 텍스트(코드) : 프로세스가 실행하는 실행 코드를 저장하는 영역 데이터 : 프로그램 내에 선언된 전역변수(global variable) 및 정적 변수(static variable) 등을 위한 영역 힙 : 동적 메모리 할당을 위한 영역 스택 : 함수 호출을 구현하기 위한 실행시간 스택(runtime stack)을 위한 영역 U-영역 : 열린 파일의 파일 디스크립터, 현재 작업 디렉터리 등과 같은 프로세스의 내부 정보 - size 명령어 $ size [실행파일] -> 실행파일의 각 영역의 크기를 알려준다. 실행파일을 지정하지 않으면 a,out를 대상으로 한다. # 프로세스 ID - 쉘의 명령어 처리과정 - 각 프로세스는 ..
#SWEA 7272 : 안경이 없어! - 풀이 문자ㅇ에 나 있는 구멍의 개수가 같으면 같은 문자이고, 다르면 다른 문자라고 생각하기 때문에 각 문자열을 입력받아 문자열에 있는 구멍의 개수가 같으면 "SAME", 다르면 "DIFF"를 출력하면 되는 문제이다. (어디가 문제인지 모르겠지만 9619개 맞았다고 해서 통과 못함... 화난다...) - 코드 #include #include int main() { char arr[] = "ADOPQR"; int T; static char str1[100], str2[100]; scanf("%d", &T); for (int tc = 1; tc
# 파일 상태 정보 1) test.txt 파일을 만들어 이 파일에 대해 ls -sl 명령어를 사용하고 그 출력 결과를 설명하시오. -> 블록수는 4이며, 파일 타입과 사용 권한은 '-rw-r--r--'이다. 링크 수는 1이며 사용자 ID와 그룹ID는 모두 hyerang이다. 또한 파일 크기는 12이고, 최종 수정된 시간은 11월 22일 18:03, 파일 이름은 test.txt이다. 2) test.txt 파일에 대해 stat 명령어를 사용하고 그 출력 결과를 설명하시오. -> test.txt의 자세한 상태 정보를 출력해준다. 3) test.txt 파일에 대해 ls -i 명령어를 사용하고 i-노드 번호를 확인한다. 4) test.txt 파일에 대해서 touch 명령어를 사용하고 사용전 후의 파일 속성을 비교..