일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- hackerrank
- 숙명여자대학교 정보보안 동아리
- c++
- CSS
- 머신러닝
- BOJ Python
- WarGame
- hackctf
- 숙명여자대학교 정보보안동아리
- XSS Game
- 웹페이지 만들기
- Python
- PHP 웹페이지 만들기
- BOJ
- The Loard of BOF
- 자료구조 복습
- c
- 드림핵
- SWEA
- HTML
- C언어
- lob
- Javascript
- 백준
- 풀이
- siss
- 기계학습
- 생활코딩
- 파이썬
- Sookmyung Information Security Study
- Today
- Total
목록2021 SISS 21기 활동 (136)
혜랑's STORY
문제를 풀기 위해 xshell로 로그인 해 주었다. ID : orc / PW : cantata 역시 가장 먼저 존재하는 파일들을 알아보기 위해 ls -l 명령어를 실행하였다. wolfman.c 파일의 내용을 확인해 보자. Lv.4에서 등장한 egghunter에 buffer hunter가 추가된 것을 볼 수 있다. 여기서 buffer hunter는 코드상 버퍼를 초기화해준다. 따라서 버퍼 너머의 주소에 Lv.4의 풀이와 마찬가지로 쉘 코드를 넣고 주소를 연결시켜주면 될 것 같다. gdb로 살펴본 스택 상황은 아래와 같다고 생각해 볼 수 있다. buffer SFP RET(return) 40 4 4 따라서 RET의 마지막 주소값엔 "\xbf"가 있으면 된다. 버퍼의 시작 주소를 알아내기 위해 strcpy 함수..
문제를 풀기 위해 xshell로 로그인 해 주었다. ID : goblin / PW : hackers proof 역시 가장 먼저 존재하는 파일들을 알아보기 위해 ls -l 명령어를 실행하였다. orc.c 파일의 내용을 확인해 보자. 앞의 문제에선 보지 못하였던 "egghunter"라는 주석과 함께 "memset()" 이라는 함수가 새롭게 등장한 것을 알 수 있다. 여기서 egghunter는 전역 선언된 environ을 memset()을 사용하여 초기화 한다. 즉, 환경 변수에 SHELLCODE를 넣고 취약한 함수의 return address를 환경 변수의 주소로 바꾸어도, egghunter에 의해 환경 변수가 초기화되기 때문에 환경 변수를 이용할 수 없게 된다. 또한 if문을 통해 argv[1][47]가 ..
#데이터베이스 설정 가장 먼저 개발을 위한 기본 환경을 만들기 위해 "cookies"라는 이름의 데이터베이스를 만들었다. 그 뒤, 데이터들이 들어갈 테이블을 만들어 주었다. 오늘 만들 글을 작성, 수정하는 기능에 필요한 테이블은 "board"라는 이름으로 만들어주었다. 숫자는 꼭 필요하기 때문에 not null로 설정하였고, 키는 기본키 그리고 자동으로 번호가 매겨지도록 설정하였다. 나머지 제목, 내용, 아이디, 날짜 또한 꼭 필요한 존재이기 때문에 not null 설정을 하였고, 각 변수에 알맞게 데이터 타입을 설정해 주었다. 추가적으로 글 작성, 수정에 필요한 화면을 제작하면서 바로 기능을 구현해 주었다. #게시물 작성 $conn = mysqli_connect('localhost', 'root', '..
#메인페이지 로그인하고 레시피 공유해요! 회원가입 지브리가 반해버린 그 맛! 하울정식 라면 오므오므오므라이스 /*main.css*/ body{ background-color: #FFF7DE; font-family: 'Nanum Pen Script', cursive; margin: 0; } .logo-size{ width: 276px; height: 68px; } .search-from{ background-color: white; width: 586px; height: 30px; vertical-align: middle; } .input-text{ width: 516px; height: 30px; background: none; border: 0px; resize: none; } table{ margin..
일단 Create timer를 눌러 보았더니 다음과 같은 결과가 나왔다. 코드를 살펴본 결과 onload를 이용해 startTimer 함수를 실행시키고 있다. (startTimer 함수란, 자바스크립트에서 제공하는 타이머 함수이다.) 따라서 startTimer 함수 뒤에 이어서 alert 함수를 실행시키면 된다고 생각하였다. 3'); alert(''); (' -> 코드에서 괄호와 '의 짝을 맞춰주기 위해 저러한 입력을 실행 함. 결과는 성공이다.
# BOJ 2748번 : 피보나치 수 2 - 풀이 #include int main(){ int n; long long fibo[91]; fibo[0] = 0; fibo[1] = 1; scanf("%d",&n); for(int i=2; i=2)는 n-1번째와 n-2번째 수의 합이라는 것을 알 수 있다. 따라서 2번째 피보나치 수를 구하기 위해서는 0번째와 1번재 수가 필요하기 때문에 둘에 미리 값을 넣어 주었다. 그 뒤, n번째 수가 될 때까지 n-1번째와 n-2번째 수를 더해주면 된다. 이때, 주의해야 할 점은 90번째 값이 int 형의 범위를 넘어가기 때문에 범위가 더 큰 long long 형으로 지정해 주어야 한다는 점이었다. - 실행결과 # BOJ 2750번 : 수 정렬하기 - 풀이 #include..
문제를 풀기 위해 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..