전체 381

[시스템] Buffer overflow 공격 54~84p - 달고나

해커 지망자들이 알아야 할 Buffer Overflow Attack의 기초 Buffer overflow 공격 Buffer overflow 공격 실제 공격 방법을 시험해 보기 위해 vul.c 프로그램을 살펴보자. 실행 시 주어지는 첫 번째 인자를 buffer라는 char형 배열에 복사한다. bound check를 하지 않는 strcpy()함수를 이용하고 있다. 1024바이트의 버퍼공간에 쉘 코드와 NCP로 채우고 4바이트는 main함수의 base pointer이므로 NCP로 채우고 다음 만나는 4바이트가 return address이므로 이곳에 쉘 코드가 있는 곳의 address를 넣어주면 쉘 코드를 실행시킬 수 있다. 컴파일 후 setuid bit를 걸어준다. 고전적인 방법 쉘 코드가 있는 곳의 addre..

시스템 해킹 2021.02.04

[시스템] buffer overflow의 이해 12~53p - 달고나

해커 지망자들이 알아야 할 Buffer Overflow Attack의 기초 4. 프로그램 구동 시 Segment에서는 어떤 일이? (p.12) simple.c void function(int a, int b, int c){ char buffer1[15]; char buffer2[10]; } void main(){ function(1, 2, 3); } 위는 스택을 이해하기 위해 만든 간단한 프로그램이다. $gcc -S -o simple.asm simple.c 로 컴파일 컴파일러의 버전에 따라 다르게 생성된다는 것을 알고 있어야 한다. 더보기 이 프로그램이 컴파일 되어 실제 메모리 상에 어느 위치에 존재하게 될지 알아보기 위해 컴파일을 한 다음 gdb를 이용해 어셈블리 코드와 메모리에 적재될 logical ..

시스템 해킹 2021.02.02

[Bandit] OverTheWire : bandit level 0 → 5

Level 0 bandit 접속하기 putty로 접속하겠다. 호스트에는 bandit.labs.overthewire.org를 입력, port에는 2220을 입력하고 connection type은 SSH로 체크하면 된다. id와 password에 모두 bandit0을 입력하면 서버접속 성공이다. Level 0 → Level 1 The password for the next level is stored in a file called readme located in the home directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a level, use SSH (on port 2220) to lo..

[XSS] XSS game level 3

XSS game level 3 URL bar의 주소를 수정해서 공격해야 하는 것 같다. 문제를 살펴봤을 때 기본적으로 알 수 있는 것은 이미지 버튼을 눌렀을 때 번호에 해당하는 이미지가 나오고 url이 frame#1, frame#2 등으로 바뀐다는 것이다. 소스코드를 살펴보자. Take a tour of our cloud data center. Image 1 Image 2 Image 3 각 이미지는 클릭시 chooseTab함수로 넘어가는데, chooseTab로 num이 전달된다. 따라서 num에 원하는 값을 넣으면 문제를 풀 수 있다. on error 속성을 이용해 공격할 것이다. on error는 이미지 링크가 없을 때 대체 이미지를 보여줄 수 있는 속성이다. 참고 이미지 부분에 없는 이미지를 입력하면..

[MySQL] 생활코딩 MySQL 15~21

생활코딩의 강의를 바탕으로 MySQL을 공부해보자. 이번 포스팅은 15)관계형데이터베이스의 필요성 부터 끝까지 강의 내용을 정리할 것이다. 15. 관계형데이터베이스의 필요성 데이터베이스를 이용하면 분리해서 저장하고 합쳐서 출력할 수 있다. 이전의 topic은 topic_backup으로 이름을 바꾸었다. 테이블명 변경 RENAME TABLE old_table TO new_table; ALTER TABLE old_table RENAME new_table; 데이터를 추가한 테이블을 출력 두 개의 테이블을 합쳐서 출력할 수 있다. SELECT * FROM table LEFT JOIN table1.column = table2.column; 테이블 속성 변경 ALTER TABLE table_name MODIFY C..

웹개발/MySQL 2021.01.29

[MySQL] 생활코딩 MySQL 1~14 실습

생활코딩의 강의를 바탕으로 MySQL을 공부해보자. MySQL 재생목록 4)MySQL의 구조 ~ 13)DELETE 4. MySQL의 구조 관계형 데이터베이스는 스프레드시트와 비슷한 구조를 가지고 있다. → 정보가 표에 저장됨. 중요한 단어 몇가지를 알아보자. 데이터베이스 : 연관된 표들을 그룹핑한 것. 스키마 : 표들을 서로 그룹핑할 때 사용하는 일종의 폴더 (=데이터베이스) 데이터베이스 서버 : 스키마가 저장된 장소 *스키마와 데이터베이스가 완전히 같은 것인지 헷갈려서 찾아보았다. 스키마와 데이터베이스의 차이 MySQL에서의 스키마와 데이터베이스 5. 서버 접속 - 6. 스키마의 사용 데이터베이스의 장점 : 보안 / 권한기능 mysql 사용자 추가하기 [MySQL 접속] mysql -uroot -p [..

웹개발/MySQL 2021.01.27

[PHP] require, basename, htmlspecialchars, strip_tags by.생활코딩

이번 포스팅을 마지막으로 생활코딩의 php 강의를 마무리 할 것 같다. 이번 포스팅에서 알아볼 함수 #require #require_once #htmlspecialchars #strip_tags #basename 파일로 모듈화 - require 웹 페이지를 다 만든 후에는 계속해서 문제점을 찾고 수정해나가야 한다. 우리가 만든 파일들을 보면, 비효율적인 면이 보인다. 특히 index.php와 create.php, update.php에서 가장 윗부분에 있는 함수가 서로 같은데, 만약 함수의 특정 부분을 수정하면 이 세 파일을 모두 수정해야 하는 번거로움이 있다. 이렇게 파일을 수정하다가 어느 하나를 놓칠 수도 있다. 여기서 좋은 코드를 만드는 방법 한 가지는 무엇이냐면, 중복을 제거하라는 것이다. 그럼 이..

웹개발/PHP 2021.01.25

[PHP] 함수, form, GET/POST, 글 생성/수정/삭제 by.생활코딩

이번 시간에는 함수 만드는 것부터 강의 끝까지 포스팅 할 예정이다. 이번 포스팅에 사용한 함수 #file_put_contents #rename #unlink 함수의 형식 1~3 #USER-DEFINED FUNTIONS 사용자 정의 함수 긴 코드는 이해하는 것이 복잡할 수 있다. 그리고 같은 기능을 반복할 때, 코드를 복붙하면 코드가 길어진다. 우리가 반복되는 기능을 함수로 만들면 이런 불편함을 간소화할 수 있다. 그리고 코드를 간결화할 수 있다. 간단한 함수를 만들어보자. 함수를 만드는 방식은 이렇다. function 함수이름(){ 실행문 } 사용방법은 간단하다. basic(); 위의 함수는 문자열을 출력하는 함수이다. 결과를 보자. 함수를 만드는 것은 코드의 재사용, 이름 부여, 수정의 간편함 등의 측..

웹개발/PHP 2021.01.25

[PHP] Boolean과 비교연산자, 조건문, 반복문, 배열 by.생활코딩

지난 포스팅에서는 php의 변수, 문자열, url 파라미터, 함수 등을 공부했다. 이번 포스팅에서는 Boolean과 비교연산자, 조건문, 반복문, 배열까지 알아볼 것이다. 사용 함수 #var_dump #isset #unset #empty #count #array_push #scandir Boolean과 비교연산자 #BOOLEAN #COMPARISON OPERATOR Boolean은 true or false 두 가지의 값만 가지는 데이터 타입이다. 보통 참은 1, 거짓은 0이다. Boolean과 비교연산자, 논리연산자에 대한 설명은 아래 링크에 첨부하겠다. 링크 #var_dump 새로운 함수에 대해 알아보자. var_dump함수는 변수의 정보를 출력해주는 함수이다. 예제 확인 간단하게 확인해보자. 위와 같..

웹개발/PHP 2021.01.24