일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c++
- The Loard of BOF
- HTML
- 머신러닝
- C언어
- 웹페이지 만들기
- WarGame
- 숙명여자대학교 정보보안동아리
- hackctf
- PHP 웹페이지 만들기
- hackerrank
- lob
- 자료구조 복습
- Python
- BOJ Python
- 파이썬
- 기계학습
- SWEA
- XSS Game
- Javascript
- 드림핵
- 숙명여자대학교 정보보안 동아리
- c
- BOJ
- 백준
- siss
- Sookmyung Information Security Study
- 생활코딩
- 풀이
- CSS
- Today
- Total
목록분류 전체보기 (346)
혜랑's STORY
문제를 풀기 위해 xshell에 로그인 해 주었다. ID : cobolt / PW : hacking exposed 가장 먼저 존재하는 파일을 알아보기 위해 ls -l 명령어를 실행하였다. goblin.c 파일의 내용을 확인해 보자. Lv.2와 같이 버퍼에 16 바이트를 할당하고 있어 쉘코드를 담기엔 충분하지 않다. 앞선 문제와 다른 점은 strcpy가 아닌 gets 함수를 사용한다는 점이다. 그러나 gets 함수 또한 문자열의 길이를 검사하지 않는 취약점이 존재한다. 앞에서 실행인자에 쉘코드를 전달하는 방법을 사용했기 때문에 이번엔 환경변수를 선언하여 문제를 해결하려 한다. 환경변수를 선언하는 방법은 다음과 같다. export SHELLCODE=`python -c 'print "\x90"*100 + "\..
문제를 풀기 위해 xshell에서 로그인 해 주었다. Id : grmlin / Pw : hello bof world 가장 먼저 존재하는 파일을 알아보기 위해 ls-l 명령어를 실행하였다. 그 결과 cobolt.c 파일과 cobolt라는 파일이 있는 것을 확인할 수 있다. cobolt 파일은 colbolt.c 파일을 컴파일하여 만들어진 파일인 것 같다. cobolt.c 파일을 열어 내용을 확인해 보았다. Lv.1 문제와 같이 strcpy 함수를 사용하여 문자열의 길이를 검사하지 않는다는 취약점이 있었다. 그러나 이번 문제에서는 buffer에 16바이트를 할당하였기 때문에 버퍼에 공격 코드를 담기엔 충분하지 못하다. 일단 권한 문제를 해결하기 위해 cp 명령어를 통해 복사를 해주었고, 그 결과 gremlin..
- 문제 - 풀이 이전 문제들과 다르게 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..
오랜만에 HTML과 CSS를 복습하고자 간단한 자기소개 페이지를 만들어 보았다! [디자인] [코드] Kawk Hyeonji More infomation 이름 : 곽현지 생일 : 2002 - 01 - 25 핸드폰 : 010 - 0000 - 0000 이메일 : *****@naver.com 블로그 : *****@tistory.com Educational History 2017-2020 충남삼성고등학교 2020 ~ 숙명여자대학교 컴퓨터과학전공 Etc C / C++ / Python 언어 공부 중 소설책 읽는 것 좋아함 풍경 사진 찍는거 좋아함 특기는 일 만들어 하기 SKT T1 좋아함 /*basic.css*/ body { background-color: #233255; padding-top: 150px; } h1..
#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 바이트가 넘는 문자열을 전달한다면 길이 제한 없이 문자열이 복사되어 스택 버퍼 ..
본 포스팅은 DreamHack 사이트의 Memory Corruption - C(1) 강의 내용을 요약한 것이다. 강의의 주소는 다음과 같다. 해커들의 놀이터, Dreamhack 해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향 dreamhack.io #Off by one Off-by-one 취약점은 경계 검사에서 하나의 오차가 있을 때 발생하는 취약점이다. 이는 버퍼의 경계 계산 혹은 반복문의 횟수 계산 시 < 대신 예제(off-by-one.c) // off-by-one-1.c #include void copy_buf(char *buf, int sz) { char te..