일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- graphql
- graphql mutation error
- graphql with RN
- graphql react native
- promise처리
- 신촌 소문난집
- 홍대 카페 장쌤
- 비동기배열
- 홍대 예술
- promise메서드
- 화이트해커를 위한 웹 해킹의 기술
- 화이트 해커를 위한 웹 해킹의 기술
- 지보싶 신촌점
- 예쁜술집 예술
- useMutation error
- 운정 소바동
- 금별맥주
- apollo react native
- 홍대 토라비
- graphql 400
- 잠실새내 도그존
- 토라비
- 앙버터마카롱
- 고르드
- apolloclient
- typescript
- graphql with reactnative
- 잠실새내
- 비동기배열처리방법
- 도그존
- Today
- Total
목록컴퓨터 시스템/시스템 해킹 (3)
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
환경변수 :시스템에서 사용하는 변수 (시스템의 설정이나 명령어의 경로 등이 저장되어있음) -환경변수는 메모리 어딘가에 항상 저장되어 있다. (*nic 계열의 쉘에서 환경변수는 포인터로 참조된다) ::BOF에서는 주로 overflow되는 버퍼의 크기가 쉘 코드가 들어갈 만큼 넉넉하지 않은 경우 사용 Linux에서 환경변수 추가하기 1. 환경변수 관련 shell 명령어: export, env env: 현재 지정되어 있는 환경변수 출력, 새로운 환경변수 설정 후 적용된 내용 출력 2. 1회성 환경변수 설정 방법 export [변수명]=값 (변수명,= , 값 사이에 공백이 없어야 한다.) shell에서 사용 int putenv(char *string); (코드 상에서 사용, 성공 시에 0 반환, 실패 시 -1 ..
BOF 공격을 하다보면 프로그램 내에 권한을 상승시켜주거나 우리가 원하는 기능을 하는 함수들이 존재하는 경우가 있고 그렇지 않은 경우가 있다. 우선 공격자가 시행하길 원하는 기능이 프로그램 내의 어떤 함수의 기능이라면 BOF를 통해 RET값에 해당 함수의 시작address를 넣어주면 된다. 그러나 공격자가 원하는 기능이 프로그램 내에 존재하지 않는다면 공격을 할 때 쉘 코드를 함께 넣어주어야 한다. 따라서 RET값에는 쉘 코드의 address가 들어가야 한다. 이 쉘코드 주소를 추측하기 위해 NOP Sled 기법을 사용한다. NOP Sled (=NOP Slide) NOP: no operation의 약자, 아무런 실행을 하지 않는다.(instruction을 구분해주기도 한다.) Linux에서 NOP: 0x..
버퍼 :시스템이 연산작업을 하는데 있어 필요한 데이터를 일시적으로 저장하는 메모리 상의 임의의 공간 (다른 말로는 큐라고도 한다.) :대부분의 프로그램에서는 버퍼를 스택에 생성한다. 스택 :함수 내에서 선언한 지역변수가 저장되고 함수가 끝나면 반환하는 저장공간 버퍼 오버플로우 (BOF, Buffer OverFlow) :미리 준비된 버퍼에 버퍼의 크기보다 큰 데이터를 쓸 때 발생한다. ('덮어쓰기'라고 생각하면 더 쉽다!) :정상적인 경우에는 접근할 수 없는 메모리 공간에 접근해서 임의로 값을 바꾸는 것 40바이트의 스택이 준비되어있다고 가정하자. -40바이트 이하의 데이터를 버퍼에 쓰는 것은 아무런 지장이 없다. -만약 41~44바이트의 데이터를 쓴다면 준비된 버퍼(40바이트)를 다 소진한 후 남은 4바..