본문으로 바로가기

고퍼

현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK

네비게이션

  • 홈
  • 태그
  • 미디어로그
  • 방명록
관리자
  • 블로그 이미지
    G0pher

    Information Security

    링크추가
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃

리눅스에서 환경변수

리눅스에서 환경변수란 무엇일까? 환경변수는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임으로 시스템의 환경 정보를 가지고 있다. 이는 어떤 프로그램에서 시스템의 환경 정보가 필요할 때 스스로 처리하도록 하는 역할을 수행한다. mv와 같이 /bin이나 /usr/bin에 있는 프로그램 등은 환경 변수 PATH에 포함되어있는 경로에서 해당 명령을 찾아 실행한다. env 모든 설정되어있는 환경 변수를 조회하는 명령이다. export 환경 변수 목록을 조회할 수 있다.export 변수명 = 변수값 의 문법을 취하면 수정도 가능하다다만 export명령으로 변경된 환경변수는 해당 사용자의 로그아웃시 소멸된다.영구적으로 변경하기 위해서는 /etc/profile 등을 직접 수정해야한다.

Study/system 2017. 11. 7. 20:56

GDB 사용법

앞으로 시스템 공부를 하면서 많이 사용하게 될 GDB의 명령어에 대해 간단하게 알아보자 GDB 의 사용법은 너무 많지만 이 글에서는 조금씩 필요한것만 추가해 나갈 예정이다. 우선 리눅스에서 GDB를 실행하는 방법은 [g0pher]$ gdb ProgramName 위와 같이 실행할 수 있다. set disas intel 어셈블리어 표기법을 인텔방식으로 설정 disas main 메인함수부분을 디스어셈블 r 프로그램 실행 b 브레이크 포인트 설정 x/[4byte 단위 보고싶은 메모리 값 수]x $[레지스터] 메모리 값을 16진수로 보여준다 ex > x/4x $ebp x/[4byte 단위 보고싶은 메모리 값 수]s $[레지스터] 메모리 값에 해당하는 문자열을 출력한다. ex > x/4s $esp ni 어셈블리 소..

Study/reversing 2017. 11. 7. 20:47

해커스쿨.Section 20

Section 20 SetUID bit란? 기술적인 이야기를 하기 전에 해커스쿨의 만화를 통해서 쉽게 이해해보자 클럽에 들어려던 주인공은 복장때문에 들어갈 수 없었다 친구에게(엄마같지만) 복장을 빌려 재도전! 친구에게 빌린 복장으로 무사히 클럽에 들어갈 수 있는 권한을 얻었다! 하지만 복장은 빌린것이기 때문에 클럽이 끝나면 다시 친구에게 돌려주게된다. 위의 내용은 SetUID를 쉽게 이해할 수 있도록 그려진 만화이다. SetUID 역시 일반 사용자가 관리자 권한을 "일시적"으로 얻을 수 있는 방법이다. 정해진 일을 수행하면 다시 권한을 반납하게 된다. 비밀번호를 바꾸는 경우와 같이 일반인에게 쉽게 권한을 줄 순 없지만 꼭 필요한 기능에 사용되며 제약이 존재하여 보안상 큰 문제가 되지 않지만 만약 해당 프..

Study/system 2017. 11. 7. 19:17

해커스쿨.Section 19

Section 19 리모트 버퍼 오버플로우와 로컬 버퍼 오버플로우 이번에는 버퍼 오버플로우 취약점이 실제상황에서 어떤 루트로 발생하는지 살펴보자 전반적인 해킹 시나리오는 해킹의 대상과 기술적인 방법에 따라 다를 수 있지만 일반적으로 총 5가지로 나뉜다. 1. 정보수집 우선 가장 기초적으로 해킹할 대상의 정보를 캐내야 한다. 대상의 도메인과 IP주소, 운영체제 종류, 작동중인 서비스, 취약점, 연결되어있는 서버, 네트워크 구조 등 정말 세세한 정보까지 수집하여 취약한 부분을 찾아내는 과정이다. 이 부분에 대해서는 대상의 복잡도와 보안강도에 따라 짧게는 몇십분, 길게는 몇주에서 몇달까지 걸릴 수도 있다. 2. 리모트 어택 정보수집 과정에서 취약점을 찾아내고 해킹의 성공을 예측할 수 있게 되었다면 리모트 어택..

Study/system 2017. 11. 7. 18:59

해커스쿨.Section 17

Section 17 스택에 저장되는 값들 살펴보기 변수가 스택에 어떻게 저장되는지 살펴보기 위해 아래와 같은 코드를 살펴보자 a -> b -> c-> d 순서로 변수를 선언했기 때문에 a부터 스택에 쌓일것이다. 아래 결과를 살펴보자 예상했던 대로 가장 먼저 선언한 a의 값인 1이 가장 높은 주소에 저장되어있는 것을 확인할 수 있다. 이번에는 int형이 아닌 자료형이 선언될 때 어떻게 선언되는지 살펴보자 우선 1바이트의 크기를 가진 char형을 선언한 코드는 아래와 같다. 결과를 보면 4바이트 할당되어있고, 7이란 값이 들어가 있기는 하다 그러나 07 앞에있는 eb 83 04는 무엇일까? 우리가 프로그래밍을 하다보면 초기화를 안하고 사용하는 경우가 있다 이러한 변수에 값을 넣지 않은채로 출력하게 되면 이상..

Study/system 2017. 11. 7. 01:46

해커스쿨.Section 15

Section 15 스택(Stack) 영역 조금 더 깊게 알기 스택은 LIFO(Last In First Out)이라는 후입선출형 구조를 가지고 있다. 말그대로 마지막에 들어온 것이 먼저 나가는 형식이다. 예를 들어 설명하면 프린터기에 종이를 차곡차곡 쌓아넣으면 가장 마지막에 올라간 종이부터 사용하는 것과 같다고 보면 된다 보통 스택은 위와같이 그리며 아래쪽이 높은주소이다. push를 통해 데이터를 채워나가며 pop을 통해 데이터를 제거해나갈 수 있다. 스택의 위치를 지칭하는 용어는 TOP과 BOTTOM이 있는데 TOP 경우 스택의 최상단. 즉, 가장 최근에 쌓인 데이터를 가리키며 BOTTOM의 경우 가장 아래부분을 가리킨다 TOP과 BOTTOM이 같을 경우 더이상 데이터가 없음을 뜻한다. 스택이 높은주소..

Study/system 2017. 11. 7. 00:18

해커스쿨.Section 14

Section 14 각 영역의 메모리 주소 값 확인해보기 http://g0pher.tistory.com/268 이번 강의는 위 페이지에 나오는 첫번째 사진을 보며 이해하면 좋다 main함수의 주소를 살펴보면 0x00000000에 가까운 주소가 아니다.코드영역의 앞쪽에는 가상메모리가 텅 비어있는 상태로 존재한다. 이러한 영역은 접근시 오류가 발생한다. 이번에는 전역변수와 정적변수가 초기화된 데이터의 주소를 살펴보면 main보다 약간 뒤쪽에 존재한다. 이번에도 전역변수와 정적변수를 선언하지만 이번엔 초기화 하지 않은 상태일 때의 주소를 살펴보자 초기화된 데이터보다 초기화 되지 않은 데이터가 더 뒤쪽에 형성됨을 알 수 있다.또한 초기화된 데이터와는 다르게 정적변수가 더 앞쪽에 형성됨을 알 수 있다. 이번에는 ..

Study/system 2017. 11. 5. 19:28

해커스쿨.Section 12

Section 12 트레이닝 코스 : 메모리 값 변조하기 위의 코드를 보고 메모리 값을 변조해보자 우선 "abc" 인자와 함께 실행해보면 아래와 같은 결과가 나온다 타겟을 DOG에서 CAT으로 바꾸어보자 위의 모습처럼 어렵지 않게 바꿀 수 있다. 이번에는 숫자를 바꾸어보자 코드는 아래와 같다 실행결과는 아래와 같다. 이번에도 "abc"를 인자로 넘겨주니 아래와 같이 나왔다 이번에는 아까처럼 오버플로우를 일으키면 아래와 같이 잘 되지 않는다. 입력한 5678은 문자로 받아들이기 때문에 이의 아스키코드인 35 36 37 38이 들어가게 된다. 이러한 경우에는 숫자로 인식할 수 있도록 파이썬이나 perl을 이용해주어야 한다. 위를 참고하여 사용하면 된다. 프로그램을 perl문법에 맞춘 인자와 함께 넘겨주면 위..

Study/system 2017. 11. 2. 22:04
  • 이전
  • 1
  • ···
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • ···
  • 49
  • 다음

사이드바

NOTICE

  • 전체 보기
MORE+

CATEGORY

  • 전체보기 (364)
    • Programing (102)
      • C (38)
      • Batch Script (3)
      • Python (25)
      • Java (9)
      • Android (0)
      • HTML (12)
      • php (5)
      • Javascript (7)
      • Scratch (3)
    • Study (110)
      • web (11)
      • network (20)
      • reversing (31)
      • system (39)
      • crypto (9)
      • AI (0)
    • Wargame (85)
      • webhacking.kr (25)
      • wargame.kr (0)
      • LOS(eagle-jump) (21)
      • LOS(rubiya) (32)
      • reversing.kr (0)
      • etc (7)
    • CTF (0)
    • ETC (53)
      • knowledge (37)
      • status (16)

RECENTLY

  • 최근 글
  • 최근 댓글

최근 글

최근댓글

Trackback

TAG

  • Los
  • web
  • 파이썬
  • 네트워크
  • webhacking.kr
  • 웹
  • Python
  • injection
  • SQL
  • writeup
  • 어셈블리어
  • 시스템
  • 리버싱
  • 웹 해킹
  • HTML
MORE+

ARCHIVE

CALENDAR

«   2025/11   »
일 월 화 수 목 금 토
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

LINK

  • ♡
  • DESIGN 아띠 그래픽
  • 이종찬
  • 박상현
  • 이창현
  • 송인봉
  • 신동철
  • 박준형
  • 유현진
  • 박형찬
  • 박형찬
  • 이우진
  • 조학근
  • 박홍주

VISITOR

오늘
어제
전체
  • 홈으로
  • 방명록
  • 로그인
  • 로그아웃
  • 맨위로
SKIN BY COPYCATZ COPYRIGHT 고퍼, ALL RIGHT RESERVED.
고퍼
블로그 이미지 G0pher 님의 블로그
MENU
  • 홈
  • 태그
  • 미디어로그
  • 방명록
CATEGORY
  • 전체보기 (364)
    • Programing (102)
      • C (38)
      • Batch Script (3)
      • Python (25)
      • Java (9)
      • Android (0)
      • HTML (12)
      • php (5)
      • Javascript (7)
      • Scratch (3)
    • Study (110)
      • web (11)
      • network (20)
      • reversing (31)
      • system (39)
      • crypto (9)
      • AI (0)
    • Wargame (85)
      • webhacking.kr (25)
      • wargame.kr (0)
      • LOS(eagle-jump) (21)
      • LOS(rubiya) (32)
      • reversing.kr (0)
      • etc (7)
    • CTF (0)
    • ETC (53)
      • knowledge (37)
      • status (16)
VISITOR 오늘 / 전체
  • 글쓰기
  • 환경설정
  • 로그인
  • 로그아웃
  • 취소

검색

티스토리툴바